因为opencv3.x中去除了opencv2.x中不稳定的模块,所以要想在opencv3中用扩展contrib模块就要自己使用Cmake编译了,因为要用到sift/surf算法,但是3.0以后这些算法都放到了在xfeacture模块中,并不在主模块中,于是我就开始了艰难的配置过程。。网上有很多教程,但在我原先的opencv3.4.0已有的情况下,没有编译成功。遂决定从头来一把,从opencv3.4的源码下载开始。因此建议,如果在过程中遇到问题的童鞋,如果实在无法解决,就重新按照此教程,老老实实从头来一遍。
重要建议:从以下网址下载opencv源代码和扩展模块源代码(一定要从下面链接下载)。不要下载编译好的cv3.0,那样是没法编译通过的。下面的链接可以下载不同版本的,根据自己的需求来下载。
1、如果环境跟我的一样可以考虑下载下面的编译好的install.
https://pan.baidu.com/s/1Q4NNXIDsxE2TtQY9X-LeHw
提取码:nbgv
这个链接是编译好的install:环境是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随便下载一个版本的都可以,安装也是傻瓜式的安装模式,只是要特别注意一下系统路径的选择。
将下载的opencv和opencv_contrib进行解压后,在你想要安装的盘里面新建一个文件夹,在这个文件夹里面新建两个文件夹分别为build和source,前者主要用来存放编译时生成的一些文件,后者主要用来存放opencv和扩展模块的源代码。
开始编译,添加文件。where is the source code:放源代码,路径如图。
where to build the binaries:生成的代码放置位置,路径如图
然后点击“configure”按钮,弹出以下窗口
选择你所用的编译器(必须要是10以后的,亲测vs10不成功,然后才换的VS13)。
然后点击“finish”就开始生成了,刚开始过程比较慢,要保持网络良好,因为过程会下载一些东西,尤其是ippicv_windows_20151201.zip,如果下载失败会报错,继续configure。
添加找到OPENCV_EXTRA_MODULES_PATH,后面添加路径D:\opencv3\source\opencv_contrib\modules,精确到\modules。一次之后如果还有红色的块,继续configure,知道全部变白为止。
然后点击Generate,回提示Generate Done。
到这里就已经成功了一半了。
step3、开始在vs2015上进行编译了。找到build文件夹里面的OpenCV.sln,双击打开。
找到CMakeTargets下的INSTALL,在Debug和Release下分别右键生成即可。这个过程功能需要一段时间30min左右。
完成后会在build这个文件夹里面出现install文件,这个就是最终的文件
step4、开始在vs2015中配置opencv工程属性
在配置之前需要先对C:\opencv3\build\install\x64\vc14\bin添加系统环境变量,网上资料很多。
然后用vs2015打开opencv工程:打开属性管理器,双击图中Microsoft.Cpp.Win64.use进行配置。
可执行文件目录: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