iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 27
1
Software Development

C++ 30天屠龍記系列 第 27

C++ 30天屠龍記(第27天):OpenCV大法好(一)

  • 分享至 

  • xImage
  •  

轉眼間就27天了,那麼今天就講OpenCV吧!

設置

Brew

brew install opencv

CMakeLists

cmake_minimum_required(VERSION 3.1..3.15)

project(helloCV)

# Default
	# Add Library Path:
		set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})

    # Add Library:
        find_package( OpenCV )
        include_directories( ${OpenCV_INCLUDE_DIRS} )
        
        find_package(fmt)


    # Build:
        add_executable(main src/main.cpp)

    # Link Libraries:
        target_link_libraries(main ${OpenCV_LIBS})
        target_link_libraries(main fmt::fmt)

    # C++ Version:
        target_compile_features(main PUBLIC cxx_std_17)

今天主要講的是圖片Upscaling

OpenCV 要實現圖片Upscaling去適配高分辨率屏幕其實不難。
這裏需要5步
1.讀取圖片
2.放大圖片
3.把圖片寫入到另一個圖片
4.打開圖片來看
以下展示他的API

#include "opencv2/opencv.hpp"
#include <string>
using namespace cv;
using namespace std;
int main(int argc, char **argv){
    //先建立一個OpenCV的圖片
    Mat image;
    //然後讓這個圖片讀取文件,後面的以是預設的意思,你可以改成 IMREAD_GRAYSCALE 
    image = imread(argv[1],1);
    //resize第一個是input,第二個是output(兩個都是OpenCV的圖片format啦),第三個預設Sizing方法
    resize(image, large, Size(), 3.0, 3.0, INTER_AREA);
    //寫入到 large.jpeg
    imwrite("large.jpeg", large);
    
    //直接用OpenCV 顯示圖片
    namedWindow("Display Image", WINDOW_AUTOSIZE);
    imshow("Display Image", large);
    //這個是CV的等待結束程式的意思
    waitKey(0);

上一篇
C++ 30天屠龍記(第25天): 一文學懂函數式編程
下一篇
C++ 30天屠龍記(第28天): OpenCV圖片美化
系列文
C++ 30天屠龍記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言