?因為opencv3.x中去除了opencv2.x中不穩(wěn)定的模塊,所以要想在opencv3中用擴展contrib模塊就要自己使用Cmake編譯了,因為要用到sift/surf算法,但是3.0以后這些算法都放到了在xfeacture模塊中,并不在主模塊中,于是我就開始了艱難的配置過程。。網(wǎng)上有很多教程,但在我原先的opencv3.4.0已有的情況下,沒有編譯成功。遂決定從頭來一把,從opencv3.4的源碼下載開始。因此建議,如果在過程中遇到問題的童鞋,如果實在無法解決,就重新按照此教程,老老實實從頭來一遍。
重要建議:從以下網(wǎng)址下載opencv源代碼和擴展模塊源代碼(一定要從下面鏈接下載)。不要下載編譯好的cv3.0,那樣是沒法編譯通過的。下面的鏈接可以下載不同版本的,根據(jù)自己的需求來下載。
1、如果環(huán)境跟我的一樣可以考慮下載下面的編譯好的install.? ? ? ? ? ? ? ? ? ? ? ??
https://pan.baidu.com/s/1Q4NNXIDsxE2TtQY9X-LeHw
提取碼:nbgv
這個鏈接是編譯好的install:環(huán)境是vs2015 opencv3.4.0
2、接下來走一遍整個編譯過程
step 1:下載源碼
? ? ? ? ? ? ???opencv??https://github.com/opencv/opencv/releases (各個版本都有)
? ? ? ? ? ? ? ?opencv_contrib?https://github.com/opencv/opencv_contrib/releases?(各個版本都有)
? ? ? ? ? ? ? ?cmake:https://cmake.org/download/
注意版本要一致。
step2:使用cmake進行開始編譯
cmake隨便下載一個版本的都可以,安裝也是傻瓜式的安裝模式,只是要特別注意一下系統(tǒng)路徑的選擇。
?將下載的opencv和opencv_contrib進行解壓后,在你想要安裝的盤里面新建一個文件夾,在這個文件夾里面新建兩個文件夾分別為build和source,前者主要用來存放編譯時生成的一些文件,后者主要用來存放opencv和擴展模塊的源代碼。
開始編譯,添加文件。where is the source code:放源代碼,路徑如圖。
where to build the binaries:生成的代碼放置位置,路徑如圖
然后點擊“configure”按鈕,彈出以下窗口
添加找到OPENCV_EXTRA_MODULES_PATH,后面添加路徑D:\opencv3\source\opencv_contrib\modules,精確到\modules。一次之后如果還有紅色的塊,繼續(xù)configure,知道全部變白為止。
然后點擊Generate,回提示Generate Done。
?
?
到這里就已經(jīng)成功了一半了。
step3、開始在vs2015上進行編譯了。找到build文件夾里面的OpenCV.sln,雙擊打開。
找到CMakeTargets下的INSTALL,在Debug和Release下分別右鍵生成即可。這個過程功能需要一段時間30min左右。
完成后會在build這個文件夾里面出現(xiàn)install文件,這個就是最終的文件
step4、開始在vs2015中配置opencv工程屬性
? ? ? 在配置之前需要先對C:\opencv3\build\install\x64\vc14\bin添加系統(tǒng)環(huán)境變量,網(wǎng)上資料很多。
? ? ? 然后用vs2015打開opencv工程:打開屬性管理器,雙擊圖中Microsoft.Cpp.Win64.use進行配置。
可執(zhí)行文件目錄:C:\opencv3\build\install\x64\vc14\bin
包含目錄:
C:\opencv3\build\install\include
C:\opencv3\build\install\include\opencv
C:\opencv3\build\install\include\opencv2
庫文件目錄:C:\opencv3\build\install\x86\vc12\lib
?
opencv_aruco340d.lib
opencv_bgsegm340d.lib
opencv_bioinspired340d.lib
opencv_calib3d340d.lib
opencv_ccalib340d.lib
opencv_core340d.lib
opencv_core340.lib
opencv_datasets340d.lib
opencv_dnn340d.lib
opencv_dpm340d.lib
opencv_face340d.lib
opencv_features2d340d.lib
opencv_features2d340.lib
opencv_flann340d.lib
opencv_highgui340d.lib
opencv_imgcodecs340d.lib
opencv_imgproc340d.lib
opencv_line_descriptor340d.lib
opencv_ml340d.lib
opencv_objdetect340d.lib
opencv_optflow340d.lib
opencv_photo340d.lib
opencv_reg340d.lib
opencv_rgbd340d.lib
opencv_saliency340d.lib
opencv_shape340d.lib
opencv_stereo340d.lib
opencv_stitching340d.lib
opencv_structured_light340d.lib
opencv_superres340d.lib
opencv_surface_matching340d.lib
opencv_text340d.lib
opencv_tracking340d.lib
opencv_video340d.lib
opencv_videoio340d.lib
opencv_videostab340d.lib
opencv_xfeatures2d340d.lib
opencv_ximgproc340d.lib
opencv_xobjdetect340d.lib
opencv_xphoto340d.lib
?
至此就完成了配置??!
本文參考來自于:
https://blog.csdn.net/zy499/article/details/82952229
https://blog.csdn.net/u012679707/article/details/80410952
?
來源:http://www.icode9.com/content-4-184051.html聯(lián)系客服