Windows下CMake編譯安裝OpenCV
這是一個面向新手的在windows上運進opencv, helloword的教程. 在這里我們使用vs2019來編譯opencv, 并運行一個helloworld來展示如何用CMake來編譯運行. 0. 準備作業 需要的軟體: VisualStudio 2019 社區版, CMake, 在系統變數下加入VS2019 MSBuild.exe 的路徑. 1. 下載:在 https://opencv.org/releases/ 下載source檔案
2. 編譯: 打開CMakeGUI 如圖:在Browser Source處選擇解壓后的原始碼, 在Build處選擇build結果存放的目錄.
然后勾選需要build的內容, 最后點 Generate. 在這里我們選擇 Visual Studio 16 2019, 設定 平臺為 x64
生成程序中可能會遇到網路問題導至的下載錯誤(需要自行解決網路問題), 鏈接庫錯誤等(可考慮去掉不需要的功能) 如:在這里我們選擇了opencv_world, 并去掉了對于python3的支持.
3. 編譯 生成結束后, build檔案夾下內容應如下所示:
我們用vs打開OpenCV.sln, 選擇ALL_BUILD后進行編譯
如果成功會有如下的顯示:

這時build檔案夾下應該會有生成出的install檔案夾(沒有就選install再進行一次編譯)內容如下. 能看到這個, 我們的opencv就編譯好了.
最后需要在系統環境變數的PATH中加入opencv的bin路徑: D:\Developments\opencv_build\install\x64\vc16\bin 4. 編譯運行helloworld 我們同樣使用cmake來編譯運行helloworld demo.cpp
1 #include "opencv2/opencv.hpp" 2 #include "opencv2/highgui/highgui.hpp" 3 4 using namespace cv; 5 6 int main(int argc, char** argv) { 7 //create a gui window: 8 namedWindow("Output",1); 9 //initialize a 120X350 matrix of black pixels: 10 Mat output = Mat::zeros( 120, 350, CV_8UC3 ); 11 //write text on the matrix: 12 cv::putText(output, "Hello World", cv::Point(10,output.rows-18), 13 cv::FONT_HERSHEY_SIMPLEX, 0.4, cv::Scalar(200,200,250), 1, 8); 14 //display the image: 15 imshow("Output", output); 16 //wait for the user to press any key: 17 waitKey(0); 18 return 0; 19 20 }下面是一個基礎的opencv. hello world級cmake檔案. 先設定 OpenCV_DIR 到install檔案夾, cmake的 find_package 會自動找到頭檔案和庫的位置. 在編譯完程式后, 需要link opencv_world這個庫. CMakeLists.txt
1 project("DEMO") 2 3 cmake_minimum_required(VERSION 3.21) 4 5 set(OpenCV_DIR "D:/Developments/opencv_build/install") # opencv安裝位置 6 find_package(OpenCV REQUIRED) # 讓CMake自動找OpenCV的頭檔案和庫 7 8 include_directories(${OpenCV_INCLUDE_DIRS}) # 要包含的頭檔案 9 add_executable(demo demo.cpp) 10 target_link_libraries(demo "D:/Developments/opencv_build/install/x64/vc16/lib/opencv_world453d.lib" ) # 鏈接OpenCV庫
新建build檔案夾后, cmake ..
再 MSBuild.exe DEMO.sln 進行編譯
最后, 生成好的檔案會在 Debug 下
人工智障與神經病網路 https://www.cnblogs.com/JiangOil/
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/308168.html
標籤:C++
