安裝Opencv

先到Opencv官網下載Windows版本:https://opencv.org/releases (4.5.0)

指定下載位置,隨意就行,我是安裝在"C:\Program Files"

接著會在安裝位置看到這樣的檔案結構:

C:\Program Files\opencv
├─build
└─sources
LICENSE.txt
LICENSE_FFMPEG.txt
README.md

在VisualStudio中設置Opencv

這部分Opencv官網講得滿清楚的直接跟著做即可:How to build applications with OpenCV inside the "Microsoft Visual Studio"

大概步驟:

  1. Create C++ "Console APP"
  2. 在專案中開啟Project > Properties
  3. Platform選定為:x64
Project > Properties:

C/C++ > General > Additional Include Directories
> C:\Program Files\opencv\build\include

指定lib位置
Linker>General>Additional Library Directories
> C:\Program Files\opencv\build\x64\vc15\lib

選擇使用的lib,在3.3.0之後只需要引用opencv_worldxxx.lib即可
Linker >Input > Additional Dependencies
> opencv_world450d.lib

這樣就配置完成了,這邊拿Opencv官網範例來測試

#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
using namespace cv;
int main()
{
    std::string image_path = samples::findFile("starry_night.jpg");
    Mat img = imread(image_path, IMREAD_COLOR);
    if (img.empty())
    {
        std::cout << "Could not read the image: " << image_path << std::endl;
        return 1;
    }
    imshow("Display window", img);
    int k = waitKey(0); // Wait for a keystroke in the window
    if (k == 's')
    {
        imwrite("starry_night.png", img);
    }
    return 0;
}

記得在編譯前把輸出選定x64:"Debug" "x64" "Local Windows Debugger",接著即可編譯

成功執行後會看到梵谷的星夜這幅畫,範例圖在此頁面下面


使用Cmake快速配置

很多時候需要配置的不只opencv,還有很多其他工具庫,每次都要逐一設定也是偏麻煩,所以有個工具叫做Cmake,可以透過設定快速幫專案建置需要的環境參數

下載Cmake

官網Download,選擇"Windows win64-x64 Installer"並安裝,記得要把加入PATH勾選起來,基本上預設位置是"C:\Program Files\CMake"

配置Cmake

首先開一個資料夾"OpencvCmake",把剛剛那個範例Code叫做main.cpp給他丟到裡面

接著在Source Code的地方新增一個叫做"CMakeLists.txt"的檔案

在CMakeLists.txt中輸入:

cmake_minimum_required(VERSION 3.10)

#設定專案名稱"OpencvCmakeVS2019"
project(OpencvCmakeVS2019)

#設定路徑變數
set(opencv_root "C:/Program Files/opencv")
set(opencv_include ${opencv_root}/build/include)
set(opencv_lib_dir ${opencv_root}/build/x64/vc15/lib)
set(opencv_libs opencv_world450d.lib)

#設定include
include_directories(${opencv_include})
#設定lib位置
link_directories(${opencv_lib_dir})
#設定引用的lib名稱
link_libraries(${opencv_libs})

#設定輸出名稱"OpencvTest"
add_executable(OpencvTest main.cpp)

至於詳細的Cmake使用方法就另外Google即可,基本上這樣就堪用了,如果有多個CPP,就把需要的CPP列進去即可,而引用其他Lib的方法也一樣,另外加入參數即可

#設定C++17
set(CMAKE_CXX_STANDARD 17)

set(lib_root "C:/Program Files/mylib")
set(lib_include ${lib_root}/build/include)
...

include_directories(${lib_include})
...

add_executable(Opencv Test main.cpp test2.cpp test3.cpp)

使用Cmake建置VS專案

這時候檔案目錄大概長這樣:

OpencvCmake:
├main.cpp
├CMakeLists.txt

把剛剛安裝的"cmake-gui.exe"點開(桌面沒看到的話會在安裝目錄bin中)

在source code中選擇你原始碼所在的資料夾,並在bulid中選擇要輸出的位置,通常會建立一個叫做bulid的資料夾,這樣才不會讓source code資料夾亂亂的

接著會看到這樣的畫面

選好輸入輸出的路徑後按下Configure,選擇你的VS版本,其餘先預設即可

並按下"Configure",等下面跑出"Configuring done"後,在按下"Generate",接著就會在那個bulid資料夾中看到VS專案檔了

使用Command line執行

使用command就方便很多了,在目錄上方的路徑輸入"cmd",開啟後切換到bulid資料夾,並輸入

cmake ..

"cmake ."是指當前目錄,而我們CmakeList而我們CmakeLists是在上個目錄中,所以是 "cmake ../" or "Cmake .."

整體流程

熟悉Cmake後,就可以快速建置各種所需函示庫的專案了

  1. 根據函示庫位置配置CMakeLists.txt
  2. bulid/ cmake ..
  3. 用VisualStudio開啟並撰寫程式

執行

接著就可以直接順利地執行程式了,只是在第一次點開VS專案時,記得設定"OpencvCmakeVS2019"右鍵Set as Startup Project

順利執行

檔案附件

cmake+vs2019+opencv

參考資料

https://zhuanlan.zhihu.com/p/108502992

https://docs.opencv.org/master/dd/d6e/tutorial_windows_visual_studio_opencv.html

https://docs.opencv.org/master/db/deb/tutorial_display_image.html

最後修改日期: 2020-10-30

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。