標籤:
因為opencv3.0預設安裝中沒有加入SIFT、SURF等點特徵檢測,一百度下一跳,原來這玩意還弄了個其他的庫,還只能在GitHub上才能弄到,這兩天弄opencv3的contrib庫,遇到了一些問題,為了讓大家更好、更快用上contrib庫,根據Google百度的幾個問題,現分享給大家完整流程,也歡迎大家與我討論其他opencv方面的問題。
一、下載安裝準備
- github desktop 下載 windows 7or Later : https://desktop.github.com
- opencv3.0.0 下載 Opencv for Windows:http://opencv.org/downloads.html
- OpenCV_contrib 下載 :https://github.com/Itseez/opencv_contrib
- cmake_gui下載 Windows (Win32 Installer):http://www.cmake.org/download/
下載對應版本的以上軟體:opencv3.0.0可以直接解壓,我的路徑為D:\opencv3,解壓完成後會產生D:\opencv3\opencv的目錄形式。
github軟體會線上直接安裝,在案頭可以直接使用Git Shell ,($ cd D:\CVRS_Code\GitHub 也可以設定opencv_contrib下載的其他路徑),輸入以下命令下載opencv_contrib到指定目錄。
1 D:\CVRS_Code\GitHub> git clone https://github.com/Itseez/opencv_contrib.git
cmake_gui 軟體直接安裝。OK,現在準備工作就緒。
二、利用CMake編譯opencv和opencv_contrib庫
- 開啟cmake_gui.
- 把opencv/source檔案夾中的CMakeLists.txt檔案直接拖入cmake_gui中,where is the source code自動選擇opencv的安裝目錄為D:\opencv3\opencv\source.
- 更改where to build the binaries 目錄,即我們將要編譯的目錄,我的是:D:\opencv3\opencv\Mybuild
- 點擊configure,點擊確定,選擇預設編譯器,點擊finish。cmake將開始進行編譯,如果一切順利將最後顯示Configure Done!表明我們configure完成,在出現的紅色地區內找到OPENCV,子目錄中找到OPENCV_EXTRA_MODULES_PATH,設定它的值為opencv_contrib/modules的絕對路徑,在這裡我的設定為D:\opencv3\opencv\sources\modules\opencv_contrib\modules(之前把opencv_contrib放在source檔案夾外面,編譯不成功,所以這裡只介紹我的方法)。
- 可以再紅色地區內再次去掉BUILD_OPENCV 和WITH_CUDA等有些硬體不支援的庫,再次點擊configure,正常情況會成功顯示Configure Done! 然後點擊Generate產生。
三、利用VS編譯Debug和Release庫
- 開啟D:\opencv3\opencv\mybuild目錄下的OpenCV.sln
- 在CMake Target中找到 INSTALL ,在Debug和Release的條件中分別右鍵選擇build,產生debug和release庫,這個過程大概持續10-20分鐘。
- 我們會在D:\opencv3\opencv\Mybuild\install檔案夾中看到這幾個檔案目錄
--bin--etc--include --opencv --opencv2--x86 --vc10 --bin --lib --staticlib--LICENSE--OpenCVConfig.cmake--OpenCVConfig-version.cmake
四、Windows和VS中配置Opencv3
- 添加環境變數PATH D:\opencv3\opencv\Mybuild\install\x86\vc10\bin ,記得多個需要用分號(;)隔開。
- 任意建立一個新的工程,開啟視圖(View)->Other Windows->Property Manager。點擊Debug,雙擊Microsoft.Cpp.Win32.user,在其中設定:(以下設定完成之後,重複2的操作,選擇Release,同樣方式設定Microsoft.Cpp.Win32.user)
- VC++目錄-->包含目錄,添加:
- D:\opencv3\opencv\Mybuild\install\include
- D:\opencv3\opencv\Mybuild\install\include\opencv
- D:\opencv3\opencv\Mybuild\install\include\opencv2
- VC++目錄-->庫目錄,添加:
D:\opencv3\opencv\Mybuild\install\x86\vc10\lib
- 連結器-->輸入-->附加依賴項,添加:
opencv_aruco300d.lib
opencv_bgsegm300d.lib
opencv_bioinspired300d.lib
opencv_calib3d300d.lib
opencv_ccalib300d.lib
opencv_core300d.lib
opencv_dnn300d.lib
opencv_face300d.lib
opencv_features2d300d.lib
opencv_flann300d.lib
opencv_highgui300d.lib
opencv_imgcodecs300d.lib
opencv_imgproc300d.lib
opencv_line_descriptor300d.lib
opencv_ml300d.lib
opencv_objdetect300d.lib
opencv_optflow300d.lib
opencv_photo300d.lib
opencv_reg300d.lib
opencv_rgbd300d.lib
opencv_saliency300d.lib
opencv_shape300d.lib
opencv_stereo300d.lib
opencv_stitching300d.lib
opencv_superres300d.lib
opencv_surface_matching300d.lib
opencv_video300d.lib
opencv_videoio300d.lib
opencv_videostab300d.lib
opencv_xfeatures2d300d.lib
opencv_ximgproc300d.lib
opencv_xobjdetect300d.lib
opencv_xphoto300d.lib
opencv_aruco300.lib
opencv_bgsegm300.lib
opencv_bioinspired300.lib
opencv_calib3d300.lib
opencv_ccalib300.lib
opencv_core300.lib
opencv_dnn300.lib
opencv_face300.lib
opencv_features2d300.lib
opencv_flann300.lib
opencv_highgui300.lib
opencv_imgcodecs300.lib
opencv_imgproc300.lib
opencv_line_descriptor300.lib
opencv_ml300.lib
opencv_objdetect300.lib
opencv_optflow300.lib
opencv_photo300.lib
opencv_reg300.lib
opencv_rgbd300.lib
opencv_saliency300.lib
opencv_shape300.lib
opencv_stereo300.lib
opencv_stitching300.lib
opencv_superres300.lib
opencv_surface_matching300.lib
opencv_video300.lib
opencv_videoio300.lib
opencv_videostab300.lib
opencv_xfeatures2d300.lib
opencv_ximgproc300.lib
opencv_xobjdetect300.lib
opencv_xphoto300.lib
五、遇到相關問題及解決方案
1.在cmake第二次進行編譯時間候,可能出現了cmake報錯:
-- ICV: Downloading ippicv_windows_20140513.tgz...CMake Error at 3rdparty/ippicv/downloader.cmake:71 (file): file DOWNLOAD HASH mismatch for file: [/tmp/dpkg-mkdeb.NSafYgjHYT/src/opencv-3.0.0-alpha/3rdparty/ippicv/downloads/linux-d80cb24f3a565113a9d6dc56344142f6/ippicv_linux_20140513.tgz] expected hash: [d80cb24f3a565113a9d6dc56344142f6] actual hash: [20d82f68c11c137093b960677093fdac]Call Stack (most recent call first): 3rdparty/ippicv/downloader.cmake:108 (_icv_downloader) cmake/OpenCVFindIPP.cmake:212 (include) cmake/OpenCVFindLibsPerf.cmake:12 (include) CMakeLists.txt:449 (include)
這種情況就可以在http://sourceforge.net/projects/opencvlibrary/files/3rdparty/ippicv/ 網站手動下載ippicv壓縮包,放到D:\opencv3\opencv\sources\3rdparty\ippicv\downloads\windows-b59f865d1ba16e8c84124e19d78eec57 檔案夾中,然後再重新編譯cmake。
六、參考資料
【1】https://github.com/Itseez/opencv_contrib/blob/master/README.md 這個是用cmake-gui編譯opencv_contrib的英文說明文檔。
【2】http://segmentfault.com/a/1190000003496009 poemqiong 博主的opencv_contrib文章參考
【3】http://stackoverflow.com 可以在國外的這個論壇上尋找你遇到各種安裝問題,一般解答都挺有效。
Windows環境中編譯opencv3.0同時加入OPENCV_contrib庫及解決遇到相關問題