编译OpenCV+contribute模块

来源:互联网 发布:视功能优化训练仪 编辑:程序博客网 时间:2024/06/05 06:36

Opencv3.0以后很多最新的功能或者不稳定的模块在opencv_contrib包中,这个包是需要额外安装的,它并不在标准版本里面,因为这个扩展包中的很多代码并没有通过大量的稳定性测试,但是其基本功能还是可以运行的,并且还在不断的开发和更新中。
工具:Cmake、vs2013

首先需要下载Opencv源码,链接:
http://opencv.org
注意,我们要下载的是没经过编译的源码,所以选择.zip文件,如图:
这里写图片描述

然后下载contribute模块,链接:
https://github.com/itseez/opencv_contrib

可以开始编译了:
1、新建一个存放编译出来的Opencv的文件夹,在文件夹下建立source文件夹用来放下载来的源代码(opencv+contribute都放在里面),建立mybuild存放编译好的opencv。
2、打开Cmake,如图在源码和输出路径框中填写路径
这里写图片描述

点击configure,选择编译器,注意:如果vs想编译64位的,Cmake必须选64位

这里写图片描述

然后在扩展地址栏中填入地址:
这里写图片描述
,接着继续点击configure直至所有红框变白,然后点击generate生成项目。
3、用vs生成项目
在mybuild下有OpenCV.sln
这里写图片描述
用vs打开。
选择需要的平台:
这里写图片描述
我们这里选择release,release和debug的区别在于最终生成的.lib文件不同,release生成的是xxxx.lib而debug生成的是xxxxd.lib,这里根据需要自己选择,也可以两种都生成。
然后重新生成解决方案:
这里写图片描述

待结束后,点开CmakeTargets–>INSTALL,右键->【仅用于项目】->【仅生成INSTALL】
这里写图片描述

如果生成报错如下:
这里写图片描述
之所以产生这些原因,是因为,Cmake没在环境变量里,Cmake需要在c盘创建文件,需要权限,所以要环境变量,这时候下载Cmake需要下载安装版本.msi,而不是开源版本.zip,安装的话有自动加如环境变量这个选项,如果是开源版本则需要自己手动添加。

4、test
新建个控制台项目,imread\imshow,测试一下。
写好代码,添加好项目的属性后,运行程序,如果系统报错:无法启动此程序,因为计算机中丢失opencv_xxx.dll。是因为在本程序的.EXE文件的目录下,缺少相应的.dll文件,解决的办法:1、在文件夹中从opencv的build(我这里是自己编译的mybuild)/install/x64/vc12/bin下复制所需的.dll文件,
2、在系统中添加环境变量 opencv的build(我这里是自己编译的mybuild)/install/x64/vc12/bin 注意这里一定具体到bin

需要特别注意的是,opencv的version和contribute的version一定要匹配,否则会出现明明有文件却编译不出.lib文件的尴尬。在github上点击release找到与opencv相对应的版本号,举例:
这里写图片描述
从以上选择你需要的版本。
否则会出现明明有xfeatures2d的文件夹和xfeatures2d,hpp
这里写图片描述

这里写图片描述

却没有xfeatures2d.lib
这里写图片描述

原创粉丝点击