win7+vs2015+opencv3.1.0+contrib3.1.0配置教程
最近在做关于图像拼接的毕业设计,在使用opencv运行demo的时候发现不同版本的opencv在使用sift,surf算法的时候竟有很大区别,走了很多弯路,最后采用这样的配置方式,经检验有效。
本文默认读者已经掌握基本配置技巧,主要用来解决配置过程中的疑难问题;如果读者对基本配置环节尚且存有疑问可以参考这篇博客
首先是VS2015;
其次是opencv3.1.0;
然后是对应版本的contrib3.1.0;
最后是cmake编译器的下载。
将这三个软件分别安装配置好。
注意:
- 安装好vs2015之后会提示重启,之后打开软件的路径在安装路径…\Microsoft Visual Studio 12.0\Common7\IDE下devenv.exe;
- 配置opencv基本的添加环境变量,配置包含目录:
D:\opencv310\opencv\mybuild\install\include;
D:\opencv310\opencv\build\include\opencv2;
D:\opencv310\opencv\build\include\opencv;
D:\opencv310\opencv\build\include;
库目录:
D:\opencv310\opencv\mybuild\install\x64\vc14\staticlib
D:\opencv310\opencv\mybuild\install\x64\vc14\lib
D:\opencv310\opencv\build\x64\vc14\lib
链接器->输入->附加依赖项:
opencv_world310d.lib
opencv_bgsegm310d.lib
opencv_bioinspired310d.lib
opencv_calib3d310d.lib
opencv_ccalib310d.lib
opencv_core310d.lib
opencv_datasets310d.lib
opencv_dnn310d.lib
opencv_dpm310d.lib
opencv_face310d.lib
opencv_features2d310d.lib
opencv_flann310d.lib
opencv_fuzzy310d.lib
opencv_highgui310d.lib
opencv_imgcodecs310d.lib
opencv_imgproc310d.lib
opencv_line_descriptor310d.lib
opencv_ml310d.lib
opencv_objdetect310d.lib
opencv_optflow310d.lib
opencv_photo310d.lib
opencv_plot310d.lib
opencv_reg310d.lib
opencv_rgbd310d.lib
opencv_saliency310d.lib
opencv_shape310d.lib
opencv_stereo310d.lib
opencv_stitching310d.lib
opencv_structured_light310d.lib
opencv_superres310d.lib
opencv_surface_matching310d.lib
opencv_text310d.lib
opencv_tracking310d.lib
opencv_ts310d.lib
opencv_video310d.lib
opencv_videoio310d.lib
opencv_videostab310d.lib
opencv_xfeatures2d310d.lib
opencv_ximgproc310d.lib
opencv_xobjdetect310d.lib
opencv_xphoto310d.lib - 配置contrib3.1.0的时候需要下载3.6.3版本的cmake,其他版本也有可能好用,但是该版本一定好用;
- cmake配置完还会存在无法打开文件opencv_bioinspired310.lib的问题,解决方法为:打开位于opencv_contrib-3.1.0\modules\bioinspired\src\opencl文件夹下面的retina_kernel.cl,把所有的注释的//********改成别的或者删掉即可。因为多个在解析的过程中导致cmake崩溃无法解析;虽然这个理由看起来很扯淡,但是确实是这样;然后重新使用cmake 配置生成就可以。
- 如果还存在无法打开文件ippicvmtd.lib的问题,直接在链接器->输入->附加项里去掉这个ippicvmtd.lib就好了,不影响匹配。
##大功告成,可以使用SIFT和SURF了。