Opencv3.1.0+opencv_contrib配置(win10+VS2015)

Source

由于在学习图像识别中的特征点检测中,需要用到Surf和Sift算法,这两个算法在Opencv2中是自带的,但是有了OpenCV 3.1.0后被分离出opencv并存放在opencv_contrib目录下面成为未稳定功能模块,所以如果我们想要使用这个目录的功能,就需要自己重新进行OpenCV的编译。

两种算法属于opencv的传统算法,surf算法实现角点检测可用于目标物体的识别与跟踪(如下图检测角点)在这里插入图片描述
在这里插入图片描述

好首先第一步还是先下载并安装opencv并配置VS运行成功,无非就是添加环境变量,在vs中添加包含目录、库目录与动态链接库并测试代码,详细的就不在这里阐述了。

下面正式进入今天的主题(Opencv3.1.0+opencv_contrib配置):

一.

1.下载opencv_contrib源码,在这一步我当时就有点卡住了,从各个github上关于contrib的下载解压时都出现了压缩包损坏的情况,让我很头疼,最后找来找去才找到一个并且成功下载下来(不过我没记住网址)我把它放在了我的下载当中(免费不需要积分的)。大家可以尽情的下载,如果有解压出现问题的可以私信我,我会重新上传。

2.下载cmake-gui工具:http://www.cmake.org/cmake/resources/software.html
在其中找到对应版本并且下载(我下载的是 cmake-3.4.3-win32-x86,最好还是不要下载太过新的版本,不知道会出现什么问题)

二.

打开cmake-gui.exe
在这里插入图片描述在这里插入图片描述

where is the source code这里就填我们的opencv中source文件夹
where to build the binaries这里我们可以再opnecv中新建一个文件夹,命名为newbuild(图示为截屏而建立的1)
在opencv_extra_models_path为配置额外编译项的目录,并在其中放置刚才下载并解压的contrib模块中modules文件夹,这样才可以向opencv中添加新增的库并且使用
点击下方configure
在这里插入图片描述
我的vs版本为2015,在这里一定要选择win64,并且下面为首选项
在这里插入图片描述

如果出现下面这个输出并且上面输出了很多 linked by target 的行,不要着急,仅仅是没有成功而已,下面我们找到红色部分中的with_cuda并将后面的 √ 去掉,再重新点击configure按钮,这样应该就可以得到最后的结果了
在这里插入图片描述在这里插入图片描述
出现这个不要着急,这个不会对结果有影响,如果还是没有成功,找找别的问题吧
在这里插入图片描述
这个就是成功的输出了
在这里插入图片描述
成功后再点击generate按钮出现 Generating done 字样就代表这一步彻底完成了

三.

1.用VS 2015打开刚才newbuild中的OpenCV.sln工程,在解决方案中可以查看工程目录:
在这里插入图片描述

2.在上面选项中选择
在这里插入图片描述

3.在解决方案中选中工程,右键选择重新生成解决方案
在这里插入图片描述

4.找到CMakeTargets中的INSTALL,然后右键选择“仅限于项目”–>“仅生成INSTALL”
在这里插入图片描述

这几步会很慢,喝杯咖啡等一等也不错,
然后,在工程目录下的install目录中,可以看到生成了一堆文件:
在这里插入图片描述
我记得好像就是在这里我出现了问题,最终编译没有通过,从底下的报错中发现了是vtk出现了问题,然后进入下一步

5.下载vtk安装包,这个网上还是比较多的

6.打开Cmake-gui进行配置VTK,我的下载解压编译过程并没有出现什么问题,步骤与上面编译类似,只不过两个文件夹路径需要改变,如果有报错可能是因为路径错误(注意从网上下载的可能其中又包含了一层目录)
在这里插入图片描述
7.在done后打开vtkbuild文件夹(即目标文件夹)
并且像上面opencv.sln一样进行相同的步骤,打开VTK.sln,在ALL_BIULD上右键,选择“生成”

8.上面步骤完成并无报错后,重新进入opencv.sln并找到CMakeTargets中的INSTALL,然后右键选择“仅限于项目”–>“仅生成INSTALL”,这次应该没有什么问题了

四.

下面就是添加包含目录、库目录以及附加依赖项

1.VC++目录–>包含目录
在这里插入图片描述

2.VC++目录–>库目录
在这里插入图片描述

3.链接器–>输入–>附加依赖项
下面均为debug版本

opencv_aruco310d.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_viz310d.lib
opencv_xfeatures2d310d.lib
opencv_ximgproc310d.lib
opencv_xobjdetect310d.lib
opencv_xphoto310d.lib

五.

上面步骤进行完成后就可以进行测试了

发布了2 篇原创文章 · 获赞 0 · 访问量 139