编译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
- 编译OpenCV+contribute模块
- Opencv3.0和contribute模块的下载 编译 安装
- cmake编译opencv3.1+contribute模块,并提供编译后的dll、lib等文件下载
- mess:编译生成 opencv3.1.0+contribute
- OPENCV编译Videoio模块问题解决
- 如何编译OpenCV里面的ocl模块
- 如何编译OpenCV里面的ocl模块
- Win10平台 OpenCV GPU模块的编译
- 【opencv】VS2015+opencv2.4.13 GPU模块编译
- OpenCV 3.1.0编译与添加扩展模块
- Window7 下编译Opencv 3.3+contrib模块+Cmake+VS2015
- OpenCV模块
- OpenCV模块
- OpenCV 模块
- opencv 模块
- [opencv]opencv模块介绍
- cuda5.5/6.0 + opencv 2.4.9 vs2010 编译opencv GPU模块
- opencv编译
- linux下使用 du查看某个文件或目录占用磁盘空间的大小
- 获取不同transName下面的transResTimeNum的集合
- Java
- 零基础学图形学(7) 几何知识——矩阵是如何工作的:第二部分
- KNN算法理解
- 编译OpenCV+contribute模块
- MFC函数之BitBlt
- 利用iperf工具测试IPv6网络
- 傅里叶变换详解
- 【训练题】路面修整[1]
- Oracle的Merge into详解
- Effective Java学习记录
- Kinect V2开发(5)读关节数据
- 傻瓜式学习webpack(四)——图片处理