OpenCV 3.2.0 + opencv_contrib+VS2017

首先本文假定你的电脑已经配置好了OpenCV3.2.0,并且想要在此基础上,添加opencv_contrib。在学习图像识别中的特征点检测和匹配时,需要用到一些常用的算法如FREAK、Surf和Sift算法等,但从OpenCV3以后,这些常用的算法OpenCV的Release版本中并不存在,因为他们是存放在opencv_contrib目录下面的未稳定功能模块,所以如果我们想要使用这些功能,需要自己下载代码并且自行编译。

首先需要有OpenCV的源码,可以通过在官网下载exe文件自动解压得到。本文章,OpenCV源码解压到E:/OpenCV/opencv/目录中。

1 下载OpenCV_contrib

前往https://github.com/opencv/opencv_contrib根据自己的OpenCV版本,下载对应的contrib。本文针对的是OpenCV3.2.0,因此,选择下载3.2.0版本即可。
下载OpenCV_Contrib

本文将openCV_contrib放入到目录:E:\OpenCV\opencv_extra中。

2 下载CMake(GUI),并完成配置

前往https://cmake.org/download/下载最新版本的CMake,当前最新版本为cmake-3.9.0-win64-x64.msi。安装结束后,打开,在where is the source code中选择openCV的源代码目录:E:/OpenCV/opencv/sources。在where to build the binaries中选择编译为Visual Studio项目的目录,可以随意选择一个空目录,这里我选择了D:/VSProject。如下图所示:
CMake

点击Configure按钮后,弹出对话框,选择编译器,根据本地计算机的CPU架构,选择32位或64位编译。本文选择Win64.如下图:

这里写图片描述

接下来完成配置后,会出现红色区域,里面是键值对配置文件。找到OPENCV_EXTRA_MODULES_PATH项,填入opencv_contrib目录下的modules文件夹路径,即:E:\OpenCV\opencv_extra\modules,如下图所示。其他地方不要轻易改动,除非你理解具体含义,否则可能会带来很多意想不到的问题。

这里写图片描述

接下来,点击Generate按钮,生成VS项目。注意,生成的这个VS项目主要是用来编译生成我们需要的库。完成后如下图所示:

这里写图片描述

此时,在D:/VSProject目录中,生成了很多文件,我们打开OpenCV.sln文件即可。

注意,在配置和生成项目过程中,可能会因为网络原因,无法下载到protobuf-cpp-3.1.0.tar.gz文件,从而报错。可以自己前往https://github.com/google/protobuf/releases中找到对应版本下载后,放入到E:\OpenCV\opencv_extra\modules\dnn\3rdparty\protobuf目录中。或者放入E:\OpenCV\opencv_extra\modules\dnn\.download\bd5e3eed635a8d32e2b99658633815ef\v3.1.0目录中,其中一串很长的MD5码目录根据每个人的机器可能会不同。

3. 编译VS,生成库

打开VS项目后,在Debug模式下。在INSTALL上 点击右键->生成。如下图所示。

这里写图片描述
完成编译后,Release模式下同理。此时,有了D:\VSProject\install目录。该目录包含了我们需要的头文件、库文件。

D:\VSProject\install\x64\vc15\bin下的所有dll文件copyC:/Windows/system32目录下。下面就可以开始使用了….

4. 使用

使用很简单,在VC++目录下的包含目录中,将D:\VSProject\install\includeD:\VSProject\install\include\opencvD:\VSProject\install\include\opencv2加入。同时,在库目录中,将D:\VSProject\install\x64\vc15\lib加入。另外,如果需要,步骤1中的<opencv_home>/build/x64/vc14/lib也可以加入。

连接器》输入》附加依赖项中,根据需要,加入对应的库。但是opencv_world320d.lib是必须的。例如,为了使用FREAK算法,我还需要加入opencv_xfeatures2d320d.lib

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值