Windows環境中編譯opencv3.0同時加入OpenCV_contrib庫及解決遇到相關問題

因爲opencv3.0默認安裝中沒有加入SIFT、SURF等點特徵檢測,一百度下一跳,原來這玩意還弄了個其他的庫,還只能在GitHub上才能弄到,這兩天弄opencv3的contrib庫,遇到了一些問題, 爲了讓大家更好、更快用上contrib庫,根據 谷歌百度的幾個問題,現分享給大家完整流程,也歡迎大家與我討論其他opencv方面的問題。

一、下載安裝準備

下載對應版本的以上軟件: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庫

  1. 打開cmake_gui.
  2. 把opencv/source文件夾中的CMakeLists.txt文件直接拖入cmake_gui中,where is the source code自動選擇opencv的安裝目錄爲D:\opencv3\opencv\source.
  3. 更改where to build the binaries 目錄,即我們將要編譯的目錄,我的是:D:\opencv3\opencv\Mybuild
  4. 點擊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文件夾外面,編譯不成功 ,所以這裏只介紹我的方法)。
  5. 可以再紅色區域內再次去掉BUILD_OPENCV 和WITH_CUDA等有些硬件不支持的庫,再次點擊configure,正常情況會成功顯示Configure Done! 然後點擊Generate生成。

三、利用VS編譯Debug和Release庫

  1. 打開D:\opencv3\opencv\mybuild目錄下的OpenCV.sln
  2. 在CMake Target中找到 INSTALL ,在Debug和Release的條件中分別右鍵選擇build,生成debug和release庫,這個過程大概持續10-20分鐘。
  3. 我們會在D:\opencv3\opencv\Mybuild\install文件夾中看到這幾個文件目錄
--bin
--etc
--include
  --opencv
  --opencv2
--x86
  --vc10
    --bin
    --lib
    --staticlib
--LICENSE
--OpenCVConfig.cmake
--OpenCVConfig-version.cmake

四、Windows和VS中配置Opencv3

  1. 添加環境變量PATH D:\opencv3\opencv\Mybuild\install\x86\vc10\bin ,記得多個需要用分號(;)隔開。
  2. 任意建立一個新的工程,打開視圖(View)->Other Windows->Property Manager。點擊Debug,雙擊Microsoft.Cpp.Win32.user,在其中設置: (以下設置完成之後,重複2的操作,選擇Release,同樣方式設置Microsoft.Cpp.Win32.user )
    1. VC++目錄-->包含目錄,添加:
      • D:\opencv3\opencv\Mybuild\install\include
      • D:\opencv3\opencv\Mybuild\install\include\opencv
      • D:\opencv3\opencv\Mybuild\install\include\opencv2
    2. VC++目錄-->庫目錄,添加: 
              D:\opencv3\opencv\Mybuild\install\x86\vc10\lib
    3. 鏈接器-->輸入-->附加依賴項,添加:

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  可以在國外的這個論壇上尋找你遇到各種安裝問題,一般解答都挺有效的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章