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

來源:互聯網
上載者:User

標籤:

 

       因為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庫

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

 

 

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.