1. 程式人生 > >Win10+VS2015環境下編譯 OpenCV 3.1和opencv_contrib

Win10+VS2015環境下編譯 OpenCV 3.1和opencv_contrib

一、下載安裝

下載以上內容並安裝opencv和cmake-gui,我的OpenCV安裝路徑為 D:\OpenCV3.1

二、Cmake

做到後面才發現x86和x64的庫生成需要在Configure的部分做區分,選擇預設的VS 14 2015就是正常的生成x86庫,而再往下兩個選擇VS 14 2015 win64就是生成的x64的庫。後面的步驟基本相同,沒有什麼區別。大家各自按需選擇就好。

  1. 在路徑選擇位置把目錄寫好,我將編譯路徑為D:\OpenCV3.1\sources\newBulid
  2. 在configure裡,選擇VS14 2015(最高版本就是這個,沒有VS15),然後點finish後,他會自動配置一通,配置好了就像下圖所示,Configuring done.

  3. 配置完成後會顯示很多配置選項,找到OPENCV_EXTRA_MODULES_PATH,將opencv_contrib的目錄放進去。在這裡,我的目錄是D:/opencv_contrib-master/modules。今天重新配置的時候,發現下面圖配錯了,( ╯□╰ )
  4. 點選Generate以後,他又自動配置一通,顯示Generating done.這樣應該就好了吧,霍霍

三、VS2015 編譯

  1. 這時候回到MyBuild資料夾下面,就能找到新生成的OpenCV.sln
  2. 在解決方案資源管理器中,選中“解決方案‘OpenCV’(151個專案)”,右鍵-->重新生成解決方案。
  3. 依舊是資源管理器中,找到CMakeTargets中的INSTALL,右鍵-->僅用於專案-->僅生成INSTALL。注:想要Debug版(格式為opencv_xxxx310d.lib)的和Release版(格式為opencv_xxxx310.lib)的lib的話,分別選擇Debug和Release以後,生成兩遍就可以了。完成後,D:/OpenCV3.1/sources/newBulid/install下會有很多東西。
更新:之前做的時候一直使用的是Debug + x64的搭配,這種情況生成的lib大都為opencvXXXX310d.lib,由於當時一直在Debug下除錯程式,對Release的lib需求並不迫切。今天想要使用Release的庫時發現傻了眼,所以翻開這篇,又重新做了一遍,走到這一步才發現,只需要把Debug換成Release就可以生成不帶d的lib了。——3.17

四、重新配置VS2015

  1. 重新配置的時候發現問題了,由於下載的OpenCV3.1.0 只有x64的庫,所以我之前配置的時候都是基於x64做的配置,然而按照上面的步驟生成的檔案只有x86的。這個時候就想到重新編譯的時候哪裡能選定並生成x64的庫咧。於是又查查詢找,發現在最開始的Cmake階段,在做Configure的時候,選擇VS14 2015 win64才能生成x64的庫。於是又重新返回去做了一遍,囧rz。
  2. 按照之前的配置把包含目錄修改為
    • D:\OpenCV3.1\sources\newBulid\install\include
    • D:\OpenCV3.1\sources\newBulid\install\include\opencv
    • D:\OpenCV3.1\sources\newBulid\install\include\opencv2
  3. 庫目錄修改為
    • D:\OpenCV3.1\sources\newBulid\install\x64\vc14\lib
    • D:\OpenCV3.1\sources\newBulid\install\x64\vc14\staticlib
  4. 依賴項:
    • opencv_calib3d310d.lib
    • opencv_core310d.lib
    • opencv_features2d310d.lib
    • opencv_flann310d.lib
    • opencv_highgui310d.lib
    • opencv_imgcodecs310d.lib
    • opencv_imgproc310d.lib
    • opencv_ml310d.lib
    • opencv_objdetect310d.lib
    • opencv_photo310d.lib
    • opencv_shape310d.lib
    • opencv_stitching310d.lib
    • opencv_superres310d.lib
    • opencv_ts310d.lib
    • opencv_video310d.lib
    • opencv_videoio310d.lib
    • opencv_videostab310d.lib
    • ippicvmt.lib
    • ……以及其他Release版本的lib,基本都和上面的一樣,但是有個別獨立的,由於密密麻麻,懶癌犯了,我目前的配置也只是把上面的d換了,應該足夠用了。各位看官要是有需要,自行新增吧吐舌頭
更新:今天看到了一種新的寫法,在配置裡直接寫D:\OpenCV3.1\sources\newBulid\install\x64\vc14\lib\*.lib就可以了,很快捷吧~