安裝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"
大概步驟:
- Create C++ "Console APP"
- 在專案中開啟Project > Properties
- 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後,就可以快速建置各種所需函示庫的專案了
- 根據函示庫位置配置CMakeLists.txt
- bulid/ cmake ..
- 用VisualStudio開啟並撰寫程式
執行
接著就可以直接順利地執行程式了,只是在第一次點開VS專案時,記得設定"OpencvCmakeVS2019"右鍵Set as Startup Project
順利執行
檔案附件
參考資料
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
留言