OpenCV contrib 3.2.0擴充套件模組新增與編譯(VS2017+OpenCV3.2.0)詳解與排坑
一Cmake配置與生成
- 安裝cmake
下載地址:https://cmake.org/download/
獲取最新版本:cmake-3.8.1-win64-x64.msi(可執行程式,不是壓縮包)
下載完畢直接執行安裝,只有一個步驟要注意,
選擇‘addCmake to the system PATH for the current user’!!!
安裝完成後,即可開啟Cmake
- 下載opencv_contrib
OpenCVcontrib下載地址,開啟頁面,下載 ZIP。(挑選與opencv版本相匹配的contrib版本,我這裡是3.2)
解壓縮到自定義目錄(記住了位置,後面要用)(
- Cmake的配置與生成
(1)填入‘ opencv原始碼的路徑’以及‘準備輸出的目錄(自定義)’
如果還沒下載opencv可以到官網下載,在opencv官網下載壓縮包(格式.exe),解壓縮到自定義目錄。
之後,點選左下方的‘configure’
(2)彈出視窗,選擇vs對應的版本。我這裡是VS2017Win64(64位的計算機選擇Win64,否則預設為32位,根據自己的安裝選擇)
預設選項‘use default native compliers’,點選‘finish’。
(3)此時,重新編譯opencv
完成會出現視窗如下:命令列顯示‘Configuring done’表示成功!
滑動中間窗格找到‘OPENCV_EXTRA_MODULES_PATH’新增‘剛剛下載的 opencvcontrib-master包下的modules資料夾’路徑。
然後,在點左下方的’Generate‘按鈕。‘generating done’表示生成成功!!!
⚠️補充,在生成過程中可能出現找不到或是下載不了‘opencv3.2protobuf-cpp-3.1.0.tar.gz’
解決辦法是:自己根據上述地址手動下載該檔案,然後將編譯時下載的檔案替換掉。根據上述程式碼可知,如果該檔案存在,就不會再去下載。
這裡附上下載連結,親測有效。。。
【連結】opencv3.2protobuf-cpp-3.1.0.tar.gz
(4)開啟輸出目錄,找到OpenCV.sln檔案,即表示cmake已完成配置與生成。
二 VS編譯生成installer
- 開啟輸出目錄,找到OpenCV.sln檔案,雙擊開啟。
第一次開啟,需要重新生成解決方案如圖所示。(需要還蠻久的時間)
- 全部生成成功後,按下圖操作生成install。
- 生成成功。
開啟同名路徑,找到install包,包下是與opencv源包build相似的檔案構架。
三重新配置OpenCV,include\libraries\附加依賴項。
- 新建一個專案
Ok--下一步。。。。唯一要注意的地方就是:‘空專案’。
在原始檔下,新建項。
- 開啟屬性管理器:修改包含目錄,庫目錄。
在側邊欄找到Debug|x64包下的Microsoft.Cpp.x64.user,右鍵‘屬性’
刪掉原有包含目錄,改為如圖所示的三個新目錄。
刪掉原有庫目錄,改為如圖所示目錄。
完事之後,記得點選應用,確定。
- 再一次開啟屬性頁:修改附加依賴項
(因為,這玩意要手打輸入,我在這裡給出。。。你們粘一下)(可以通過命令列程式cmd的命令得到lib檔案下所有的檔名,詳細做法可以見我的另一篇博文)
新增內容:(其實就是之前install/…/lib下的內容)
opencv_aruco320d.lib
opencv_bgsegm320d.lib
opencv_bioinspired320d.lib
opencv_calib3d320d.lib
opencv_ccalib320d.lib
opencv_core320d.lib
opencv_datasets320d.lib
opencv_dnn320d.lib
opencv_dpm320d.lib
opencv_face320d.lib
opencv_features2d320d.lib
opencv_flann320d.lib
opencv_fuzzy320d.lib
opencv_highgui320d.lib
opencv_imgcodecs320d.lib
opencv_imgproc320d.lib
opencv_line_descriptor320d.lib
opencv_ml320d.lib
opencv_objdetect320d.lib
opencv_optflow320d.lib
opencv_phase_unwrapping320d.lib
opencv_photo320d.lib
opencv_plot320d.lib
opencv_reg320d.lib
opencv_rgbd320d.lib
opencv_saliency320d.lib
opencv_shape320d.lib
opencv_stereo320d.lib
opencv_stitching320d.lib
opencv_structured_light320d.lib
opencv_superres320d.lib
opencv_surface_matching320d.lib
opencv_text320d.lib
opencv_tracking320d.lib
opencv_video320d.lib
opencv_videoio320d.lib
opencv_videostab320d.lib
opencv_xfeatures2d320d.lib
opencv_ximgproc320d.lib
opencv_xobjdetect320d.lib
opencv_xphoto320d.lib
- 新增環境變數
複製目錄:
增加環境變數到Path:
整個開發環境部署完工!!!
但是要注意,每次執行專案時要重新設定Debug為‘x64’,否則會報錯。
附贈測試程式碼:(圖片路徑自行修改)
#include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
int main(int argc,char** argv) {
Matsrc = imread("E:/image/lena.bmp");
if(src.empty())
{
printf("couldnot load image...\n");
return-1;
}
namedWindow("inputimage", CV_WINDOW_AUTOSIZE);
imshow("inputimage", src);
waitKey(0);
return0;
}
可以顯示圖片就代表,一切部署成功了,撒花!