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
放入到目录: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
。如下图所示:
点击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模式下。在ALL_BUILD上 点击右键->生成。如下图所示。
完成编译后,Release模式下同理。此时,有了D:\VSProject\install
目录。该目录包含了我们需要的头文件、库文件
4. 使用
使用很简单,在VC++目录下的包含目录中,将D:\VSProject\install\include
、D:\VSProject\install\include\opencv
、D:\VSProject\install\include\opencv2
加入。同时,在库目录中,将D:\VSProject\install\x64\vc15\lib
加入。另外,如果需要,步骤1中的<opencv_home>/build/x64/vc14/lib
也可以加入。
连接器》输入》附加依赖项中,根据需要,加入对应的库。但是opencv_world320d.lib
是必须的。例如,为了使用FREAK
算法,我还需要加入opencv_xfeatures2d320d.lib
。
OpenCV 3.2.0 + opencv_contrib+VS2017的更多相关文章
- 继《在Windows下编译扩展OpenCV 3.1.0 + opencv_contrib》修订
在之前的<在Windows下编译扩展OpenCV 3.1.0 + opencv_contrib>中有些问题,后来由于时间不是很充足,故现在对其中的问题进行完善,如下所示对红色框框中的相应的 ...
- 在Windows下编译扩展OpenCV 3.1.0 + opencv_contrib
为什么要CMake,这里我陈述自己的想法,作为一个刚使用opencv库的小白来说,有以下大概三点内容 1.由于在学习图像处理滤波器中,需要用到各种边缘保护滤波器(EPS)算法,但是这些算法在OpenC ...
- (一)在Windows下编译扩展OpenCV 3.1.0 + opencv_contrib 及一些问题
一.准备工作: 1.下载OpenCV安装包:https://github.com/opencv/opencv 安装过程实际上就是解压过程,安装完成后得到(这里修改了文件名): 2.下载opencv_c ...
- 在Windows下编译扩展OpenCV 3.1.0 + opencv_contrib 及一些问题
一.准备工作: 1.下载OpenCV安装包:https://github.com/opencv/opencv 安装过程实际上就是解压过程,安装完成后得到(这里修改了文件名): 2.下载opencv_c ...
- Ubuntu 16.04下为Android编译OpenCV 3.2.0 Manager
http://johnhany.net/2016/07/build-opencv-manager-for-android-on-ubuntu/ 最近想在Android上尝试一下SIFT和SURF匹配算 ...
- 在Jetson TX2上安装OpenCV(3.4.0)
参考文章:How to Install OpenCV (3.4.0) on Jetson TX2 与参考文章大部分都是相似的,如果不习惯看英文,可以看看我下面的描述 在我们使用python3进行编程时 ...
- (win10 64位系统中)Visual Studio 2015+OpenCV 3.3.0环境搭建,100%成功
(win10 64位系统中)Visual Studio 2015+OpenCV 3.3.0环境搭建,100%成功 1.下载opencv 官网http://opencv.org/下载windows版Op ...
- visual studio 2015 Opencv 3.4.0配置
因为想做AR方面,需要了解计算机视觉知识,决定从opencv开始入门,在网上买了本毛星云的<Opencv3编程入门>开始自学. 一.opencv 3.4.0下载安装 在官网http://o ...
- Windows下OpenCV 3.1.0 在 Qt Creator 4.0.2 (Qt 5.7.0 MinGW) 中的开发环境配置
2017-2-23 Update: 修改并添加了部分细节 最近正在学习OpenCV ,为毕业设计做准备.Windows版本的OpenCV都默认提供对VS的支持,其在VS中的配置比较简单,网上也有大批教 ...
随机推荐
- 博客迁移至新平台ixirong.com
很久没有在博客园上写文章了,一是时间有些忙,更重要的是自己还是没有抽出时间来坚持写下去,由于15年后自己的一些打算,在前一段时间的时候,建立了自己的个人博客站点,http://www.ixirong. ...
- <option> 标签的 value 属性
<html> <body> <form action="/example/html/form_action.asp" method="get ...
- linux在线安装telnet
平常在调试机器网络互通的时候使用到telnet,新机器一般没安装相应命令,需要我们手工安装. 下面是在线安装的方法,使用以下命令即可完成安装: yum install telnet
- 了解下Mysql的间隙锁及产生的原因
什么是间隙锁当我们用范围条件而不是相等条件检索数据,并请求共享或排他锁时,InnoDB会给符合条件的已有数据记录的索引项加锁:对于键值在条件范围内但不存在的记录,叫做“间隙(GAP)”,InnoDB也 ...
- 20145227鄢曼君《网络对抗》逆向及Bof基础
20145227鄢曼君<网络对抗>逆向及Bof基础 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任 ...
- linux第八周
进程的切换和系统的一般执行过程 一.进程调度与进程切换 1.不同的进程有不同的调度需求 第一种分类: I/O密集型(I/O-bound)频繁的进行I/O通常会花费很多时间等待I/O操作的完成CPU密集 ...
- kali_常用软件记录
可参考:http://www.lvzejun.cn/2015/03/31/ubuntu-software/ 录屏软件 http://www.kohaupt-online.de/hp/ http://l ...
- [CF600E]Lomsat gelral
题意翻译 一棵树有n个结点,每个结点都是一种颜色,每个颜色有一个编号,求树中每个子树的最多的颜色编号的和. 线段树合并板子题,没啥难度,注意开long long 不过这题$dsu$ $on$ $tre ...
- 如何利用Xshell在windows与linux之间互传文件
如何利用Xshell在windows与linux之间互传文件 第一步: 安装Xshell. 第二步: 打开Xshell,若出现默认的对话框,则选择关闭,因为下面将演示如何将本地文件传输至远程linux ...
- springboot属性类自动加载配置文件中的值
springboot属性类自动加载配置文件中的值,如Person类加载在yml中配置的name,age等属性值,可以通过如下步骤获取: 类上添加@ConfigurationProperties注解,p ...