win10+Opencv3.1.0+opencv_contrib配置(win10+VS2015)(内含下载链接)

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

两种算法属于opencv的传统算法,surf算法实现角点检测可用于目标物体的识别与跟踪(如下图检测角点)win10+Opencv3.1.0+opencv_contrib配置(win10+VS2015)(内含下载链接)_第1张图片
win10+Opencv3.1.0+opencv_contrib配置(win10+VS2015)(内含下载链接)_第2张图片

好首先第一步还是先下载并安装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
win10+Opencv3.1.0+opencv_contrib配置(win10+VS2015)(内含下载链接)_第3张图片win10+Opencv3.1.0+opencv_contrib配置(win10+VS2015)(内含下载链接)_第4张图片

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

如果出现下面这个输出并且上面输出了很多 linked by target 的行,不要着急,仅仅是没有成功而已,下面我们找到红色部分中的with_cuda并将后面的 √ 去掉,再重新点击configure按钮,这样应该就可以得到最后的结果了
win10+Opencv3.1.0+opencv_contrib配置(win10+VS2015)(内含下载链接)_第7张图片在这里插入图片描述

有可能会出现下面这个问题,但是我第二次点击configure后好像就没有了,这个问题应该出现在ocv_download这个函数在使用时出现问题,我也去网上查找过解决方案,有的说是把对应行的PACKAGE写成filename,但是行数与我的txt文件中不同,可以看出版本不一样,可能会出现错误,为了避免出现其他问题,就先不要改动这里了。这里的问题我再看一下,一旦找到了,我会马上到这里修改的。

出现这个不要着急,这个不会对结果有影响,如果还是没有成功,找找别的问题吧
在这里插入图片描述
这个就是成功的输出了
在这里插入图片描述
成功后再点击generate按钮出现 Generating done 字样就代表这一步彻底完成了

三.

1.用VS 2015打开刚才newbuild中的OpenCV.sln工程,在解决方案中可以查看工程目录:
win10+Opencv3.1.0+opencv_contrib配置(win10+VS2015)(内含下载链接)_第8张图片

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

3.在解决方案中选中工程,右键选择重新生成解决方案
win10+Opencv3.1.0+opencv_contrib配置(win10+VS2015)(内含下载链接)_第9张图片

4.找到CMakeTargets中的INSTALL,然后右键选择“仅限于项目”–>“仅生成INSTALL”
win10+Opencv3.1.0+opencv_contrib配置(win10+VS2015)(内含下载链接)_第10张图片

这几步会很慢,喝杯咖啡等一等也不错,
然后,在工程目录下的install目录中,可以看到生成了一堆文件:
win10+Opencv3.1.0+opencv_contrib配置(win10+VS2015)(内含下载链接)_第11张图片
我记得好像就是在这里我出现了问题,最终编译没有通过,从底下的报错中发现了是vtk出现了问题,然后进入下一步(如果没有出现这个问题那就恭喜啦,可以直接跳过下一步,直接添加库了)

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

6.打开Cmake-gui进行配置VTK,我的下载解压编译过程并没有出现什么问题,步骤与上面编译类似,只不过两个文件夹路径需要改变,如果有报错可能是因为路径错误(注意从网上下载的可能其中又包含了一层目录)
win10+Opencv3.1.0+opencv_contrib配置(win10+VS2015)(内含下载链接)_第12张图片
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

五.

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

以上是我遇到的一些问题并结合网上很多大神的解决方案揉成一套常见问题及解决方案,希望可以帮到大家

本文参考的所有文章链接如下:
https://blog.csdn.net/nnnnnnnnnnnny/article/details/52182091
https://blog.csdn.net/linshuhe1/article/details/51221015

你可能感兴趣的:(配置opencv扩展库,计算机视觉)