OpenCV+contrib3.4.16環境配置筆記
每次換電腦配置的時候都要去搜部落格太麻煩了,乾脆自己從頭到尾記錄一遍。
【本地環境】
系統:Windows10
IDE:Visual Studio 2022
【OpenCV版本】
opencv 3.4.16
opencv contrib3.4.16
1.配置前準備
(1)安裝VS
一般都是在VS裡寫程式碼,網上部落格也都是基於VS的,為了配置的速度以及方便查詢問題,建議安裝VS。VS的版本不重要,可以直接下載最新的。
(2)安裝Cmake
Cmake主要用於編譯contirb的程式碼。
(3)安裝OpenCV3
我下載的版本是3.4.16,去官網下載即可,有.exe安裝包,下載完直接安裝到本地。建議直接在D盤下新建一個opencv目錄安裝本體和拓展的環境。
(4)下載contrib原始碼
一定要和opencv版本一致。下載好之後解壓到和opencv一起的目錄。
2.編譯opencv contrib
詳情可以參考這一篇部落格:https://blog.csdn.net/weijifen000/article/details/93377143
主要步驟如下:
(1)在你安裝的opencv根目錄下新建一個“new_build”資料夾,用於存放cmake編譯輸出。
(2)開啟cmake,選擇好opencv/sources原始碼目錄,和編譯輸出目錄,即上面的new_build資料夾。
(3)點選configure,彈出預設選擇VS。下方顯示configuration done。在generate之前要確保不報紅,可以反覆點configure,有可能會因為網路環境下載不到部分的包,報出的錯誤一定要去搜索解決,然後再到下一步。
(4)點選generate,等待完成。
(5)在new_build資料夾下,用VS開啟OpenCV.sln解決方案。
(6)注意編譯器設定的模式,我是DebugX64。
(7)右鍵專案生成解決方案。要等待一會。
(8)CMakeTargets->INSTALL 右鍵僅用於專案->僅生成INSTALL。
(9)編譯完成後,輸出的依賴都在下面的目錄裡。下面準備在專案裡做配置。
3.開始配置
在VS裡新建一個空C++專案,開始配置。配置中儲存一個屬性表,下次新建專案時直接匯入就可以完成配置。
詳細可以參考這篇部落格:https://blog.csdn.net/ivan_9/article/details/114490508
3.1配置環境變數
在環境變數path裡新建opencv和contrib的目錄。我的如下:
下面的是contrib的目錄。我在自己安裝的opencv下新建了install目錄存放編譯輸出。
3.2配置環境
開啟屬性視窗。
新增新專案屬性表。把屬性表儲存到一個容易找的位置,以後新建opencv專案只要載入這個屬性表就行。
開啟屬性頁。
VC++->包含目錄,新增include目錄
D:\openCV\opencv\build\include
D:\openCV\opencv\build\include\opencv
D:\openCV\opencv\build\include\opencv2
上面是opencv的部分,下面是contirb的部分:
D:\openCV\opencv\install\install\include
D:\openCV\opencv\install\install\include\opencv
D:\openCV\opencv\install\install\include\opencv2
新增庫目錄。這是我的:
D:\openCV\opencv\build\x64\vc15\lib
contrib的部分:
D:\openCV\opencv\install\install\x64\vc17\lib
連結器->輸出->附加依賴項。新增依賴項。
opencv的部分(帶d字尾的是debug模式):
opencv_world3416d.lib
contrib的部分比較多,先進入到contirb依賴所在的目錄。
因為要複製所有檔名,寫一個批處理檔案來完成。在該目錄下新建一個list.txt,在裡面寫入:
DIR *.* /B >LIST.TXT
修改後綴名,儲存為list.bat檔案。雙擊,指令碼執行完在本地輸出一個list.txt。開啟后里面有所有依賴的檔名。
我的是這些:
opencv_aruco3416d.lib
opencv_bgsegm3416d.lib
opencv_bioinspired3416d.lib
opencv_calib3d3416d.lib
opencv_ccalib3416d.lib
opencv_core3416d.lib
opencv_datasets3416d.lib
opencv_dnn3416d.lib
opencv_dnn_objdetect3416d.lib
opencv_dpm3416d.lib
opencv_face3416d.lib
opencv_features2d3416d.lib
opencv_flann3416d.lib
opencv_fuzzy3416d.lib
opencv_hdf3416d.lib
opencv_hfs3416d.lib
opencv_highgui3416d.lib
opencv_imgcodecs3416d.lib
opencv_imgproc3416d.lib
opencv_img_hash3416d.lib
opencv_line_descriptor3416d.lib
opencv_ml3416d.lib
opencv_objdetect3416d.lib
opencv_optflow3416d.lib
opencv_phase_unwrapping3416d.lib
opencv_photo3416d.lib
opencv_plot3416d.lib
opencv_reg3416d.lib
opencv_rgbd3416d.lib
opencv_saliency3416d.lib
opencv_shape3416d.lib
opencv_stereo3416d.lib
opencv_stitching3416d.lib
opencv_structured_light3416d.lib
opencv_superres3416d.lib
opencv_surface_matching3416d.lib
opencv_text3416d.lib
opencv_tracking3416d.lib
opencv_video3416d.lib
opencv_videoio3416d.lib
opencv_videostab3416d.lib
opencv_xfeatures2d3416d.lib
opencv_ximgproc3416d.lib
opencv_xobjdetect3416d.lib
opencv_xphoto3416d.lib
4.測試環境
隨便找一段程式碼測試一下。
5.儲存屬性表
下次新建其它openCV專案,新增現有屬性表,選擇這個即可。