VS2013+opencv3.3+contrib模塊win7 *32位編譯

最近準備學習opencv,就裝了一個沒有contrib模塊的版本,然後就不能使用SURF,後來又搗鼓了好久終於重新裝上了。爲此,準備給自己寫一份安裝的記錄,以備以後用到。

本文借鑑並且轉載自http://blog.csdn.net/linshuhe1/article/details/51221015的Opencv學習筆記(八)--opencv3.1.0+opencv_contrib編譯(windows)文章


一、下載opencv

從官網上下載:https://opencv.org/releases.html 


下載完之後解壓到指定文件夾,獲得如下結果



二、下載opencv_contrib源碼:https://github.com/opencv/opencv_contrib/releases/tag/3.3.0

因爲安裝的opencv是3.3.0版本的,所以contrib最好也選擇3.3.0版本,該網址鏈接的就是3.3.0版本的地址,如果是其他版本的可以從

https://github.com/opencv/opencv_contrib/releases選擇對應版本

下載後,解壓得到如下結果



三.下載cmake-gui工具:http://www.cmake.org/cmake/resources/software.html

cmake安裝教程網上很多,百度搜索一下就可以


四、使用cmake生成OpenCV.sln:

1.打開cmake-gui\bin目錄下的cmake-gui.exe工具

2.填寫相應參數,包括:OpenCV源碼目錄和OpenCV.sln工程的導出目錄,開始導出OpenCV.sln工程:


第一次導出時需要設置後面用來編譯此OpenCV.sln工程的VS的版本,這裏我用的是VS 2013:

雖然是64位系統,但是一般32位編譯的文件居多,所以在我安裝的時候選擇的是32位編譯。可以根據具體情況選擇,也可以選擇64位的。


設置完成之後點擊“Generate”開始生成工程:


3.第一次編譯完成之後,我們需要將額外的opencv_contrib加到工程中進行第二次編譯,在配置表中 到“OPENCV_EXTRA_MODULES_PATH”,設置其參數值爲open_contrib源碼包中的modles目錄,我的目錄是“E:\OpenCV\tools\opencv_contrib-master\modules”:


設置完成之後點擊Configure進行配置,不報錯的話就進行第二次編譯:


第二次編譯一般很快就能完成:


編譯完成後,我們在資源管理器下查看上面設置的文件輸出目錄,發現目錄下多出了很多文件,其實就是OpenCV.sln工程文件:



五、用VS打開OpenCV.sln工程,編譯生成Debug和Release庫:

(記得用管理員身份打開vs2013,編譯會比較順利點)

1.用VS 2015打開OpenCV.sln工程,在解決方案中可以查看工程目錄:


在生成的解決方案opencv中,一般有兩種版本build並且install opencv:Debug 和 Release版本,它們之間的區別不大瞭解 ,具體百度。在本文中,我使用的是Debug,選擇的編譯平臺是32位。

1. 右擊All_BUILD,選擇生成 。
2. 生成完成後,右擊INSTALL,選擇生成。
上述過程完成後,生成的是Debug版的動態鏈接庫。

結束後,在工程目錄下的install目錄中,可以看到生成一下文件:



六、把新的庫文件配置到到項目中

1、VC++目錄-->包含目錄,添加:D:\opencv3\opencv\mybuild\install\include

2、VC++目錄-->庫目錄,添加:D:\opencv3\opencv\mybuild\install\x86\vc12\lib

                                                         D:\opencv3\opencv\mybuild\install\x86\vc12\staticlib

3、鏈接器-->輸入-->附加依賴項,添加: (下面添加的Debug的版本,注意添加的庫與編譯選項要一致)

opencv_calib3d330d.lib
opencv_core330d.lib
opencv_dnn330d.lib
opencv_features2d330d.lib
opencv_flann330d.lib
opencv_highgui330d.lib
opencv_imgcodecs330d.lib
opencv_imgproc330d.lib
opencv_ml330d.lib
opencv_objdetect330d.lib
opencv_photo330d.lib
opencv_shape330d.lib
opencv_stitching330d.lib
opencv_superres330d.lib
opencv_video330d.lib
opencv_videoio330d.lib
opencv_videostab330d.lib

好啦,整個過程完結,可以開始使用opencv啦。

編譯程序時候出錯:

1>LINK : fatal error LNK1104: 無法打開文件“MSVCRT.lib”

解決方法:

VC++目錄-->庫目錄,添加:G:\Program Files (x86)\VS2013\VC\lib(改成自己的vs2013的vc的lib文件地址),編譯通過


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