作者:billy
版權聲明:著作權歸作者所有,商業轉載請聯繫作者獲得授權,非商業轉載請註明出處
前言
因爲最近項目中用到了工業相機作業,涉及到圖像處理無疑就要用到 OpenCV 了,用此章節來記錄 OpenCV 從源碼到編譯,再到應用的過程。
開發環境:Qt 5.12.8, vs2017 Community
軟件版本:opencv-4.2.0-vc14_vc15,cmake-3.17.1-win64-x64.msi
OpenCV下載地址:OpenCV官網
CMake下載地址:CMake官網
注意:OpenCV 4.0 現在是一個 C++11 庫,要求 C++11 兼容的編譯器。所需的 CMake 至少是 3.5.1 以上的版本。
VS2017 編譯 OpenCV
-
打開 cmake-gui 配置資源目錄和輸出目錄;
-
配置vs編譯器版本,博主使用的是vs2017,選擇x64,不選會默認使用Win32;
-
勾選生成列表中的 WITH_OPENGL 和 WITH_QT 兩項,其他項最好不要改動。出現紅色區域繼續點擊 Configure,直到紅色全部消失;
-
點擊 Generate 生成 OpenCV 工程,成功後底下會提示 Generating done;
-
在 output 文件夾下找到工程 OpenCV.sln,並用VS打開;
-
這裏需要注意的是VS默認的編譯器設置是Win32,如果要生成64位的 OpenCV 庫則需要調整爲x64。可以在vs的安裝目錄 C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCWizards 下修改 default.vcxproj,DefaultTest.vcxproj、vcupgradedefault.vcxproj 三個文件,將其中的Win32替換爲x64即可永久設置爲x64。當然也可以手動設置爲x64,但是手動設置僅僅是這一次有效,當新建一個項目打開就又是W32了;
-
選擇 Debug x64,右鍵 ALL BUILD 選擇 “生成” ,這裏需要等待一段時間直到全部成功;
-
選擇 Release x64,同樣右鍵 ALL BUILD 選擇 “生成”,等待一段時間直到全部成功;
-
可以在 output 文件下查看生成的庫文件。靜態庫在lib目錄下,動態庫在bin目錄下;
-
到了這裏還差最後一步,把庫文件、頭文件集中到一起,不需要我們手動拷貝,工程中提供了 “安裝” 功能。我們回到 OpenCV 工程,右鍵 INSTALL 選擇 “生成”,記得 Debug 和 Release 都來一遍哦,完成之後就大功告成了!路徑爲:output\install;
Qt 編譯 OpenCV(比vs快好多好多,而且更方便!)
-
用Qt打開 opencv\sources\CMakeLists.txt
-
配置信息;
-
Debug 和 Release 都跑一邊就完成了,勾選 “install” 會直接幫我們把頭文件、庫文件整合在一起,是不是比VS要方便很多!
-
bug記錄;
bug:error C1041: 無法打開程序數據庫“xxx\xxx.pdb”;如果要將多個 CL.EXE 寫入同一個 .PDB 文件,請使用 /FS;
解決方案:工具 - 選項 - 構建和運行 - 概要 - 不勾選 “使用jom代替nmake”;
編譯完成的 OpenCV 庫
編譯完成之後整理了一下目錄結構,把結果做一下分享,有需求的小夥伴可以自行下載。
下載地址:OpenCV_msvc2017_64
提取碼:mzbp