Windows环境中编译opencv3.0同时加入OPENCV_contrib库及解决遇到相关问题[contrib 必须要3.1以上的opencv才支持了]
更新:现在contrib库必须要opencv3.1以上才能支持编译通过了。
方法和步骤还是和本篇文章一样。
##############################################################################
因为opencv3.0默认安装中没有加入SIFT、SURF等点特征检测,一百度下一跳,原来这玩意还弄了个其他的库,还只能在GitHub上才能弄到,这两天弄opencv3的contrib库,遇到了一些问题,为了让大家更好、更快用上contrib库,根据谷歌百度的几个问题,现分享给大家完整流程,也欢迎大家与我讨论其他opencv方面的问题。
一、下载安装准备
- github desktop 下载 windows 7or Later : https://desktop.github.com
- opencv3.0.0 下载 Opencv for Windows:http://opencv.org/downloads.html
- OpenCV_contrib 下载 :https://github.com/Itseez/opencv_contrib
- cmake_gui下载 Windows (Win32 Installer):http://www.cmake.org/download/
下载对应版本的以上软件:opencv3.0.0可以直接解压,我的路径为D:\opencv3,解压完成后会生成D:\opencv3\opencv的目录形式。
github软件会在线直接安装,在桌面可以直接使用Git Shell ,($ cd D:\CVRS_Code\GitHub 也可以设定opencv_contrib下载的其他路径),输入以下命令下载opencv_contrib到指定目录。
D:\CVRS_Code\GitHub> git clone https://github.com/Itseez/opencv_contrib.git
cmake_gui 软件直接安装。OK,现在准备工作就绪。
二、利用CMake编译opencv和opencv_contrib库
- 打开cmake_gui.
- 把opencv/source文件夹中的CMakeLists.txt文件直接拖入cmake_gui中,where is the source code自动选择opencv的安装目录为D:\opencv3\opencv\source.
- 更改where to build the binaries 目录,即我们将要编译的目录,我的是:D:\opencv3\opencv\Mybuild
- 点击configure,点击确定,选择默认编译器,点击finish。cmake将开始进行编译,如果一切顺利将最后显示Configure Done!表明我们configure完成,在出现的红色区域内找到OPENCV,子目录中找到OPENCV_EXTRA_MODULES_PATH,设置它的值为opencv_contrib/modules的绝对路径,在这里我的设置为D:\opencv3\opencv\sources\modules\opencv_contrib\modules(之前把opencv_contrib放在source文件夹外面,编译不成功,所以这里只介绍我的方法)。
- 可以再红色区域内再次去掉BUILD_OPENCV 和WITH_CUDA等有些硬件不支持的库,再次点击configure,正常情况会成功显示Configure Done! 然后点击Generate生成。
三、利用VS编译Debug和Release库
- 打开D:\opencv3\opencv\mybuild目录下的OpenCV.sln
- 在CMake Target中找到 INSTALL ,在Debug和Release的条件中分别右键选择build,生成debug和release库,这个过程大概持续10-20分钟。
- 我们会在D:\opencv3\opencv\Mybuild\install文件夹中看到这几个文件目录
--bin
--etc
--include
--opencv
--opencv2
--x86
--vc10
--bin
--lib
--staticlib
--LICENSE
--OpenCVConfig.cmake
--OpenCVConfig-version.cmake
四、Windows和VS中配置Opencv3
- 添加环境变量PATH D:\opencv3\opencv\Mybuild\install\x86\vc10\bin ,记得多个需要用分号(;)隔开。
- 任意建立一个新的工程,打开视图(View)->Other Windows->Property Manager。点击Debug,双击Microsoft.Cpp.Win32.user,在其中设置:(以下设置完成之后,重复2的操作,选择Release,同样方式设置Microsoft.Cpp.Win32.user)
- VC++目录-->包含目录,添加:
- D:\opencv3\opencv\Mybuild\install\include
- D:\opencv3\opencv\Mybuild\install\include\opencv
- D:\opencv3\opencv\Mybuild\install\include\opencv2
- VC++目录-->库目录,添加:
D:\opencv3\opencv\Mybuild\install\x86\vc10\lib - 链接器-->输入-->附加依赖项,添加:
opencv_aruco300d.lib
opencv_bgsegm300d.lib
opencv_bioinspired300d.lib
opencv_calib3d300d.lib
opencv_ccalib300d.lib
opencv_core300d.lib
opencv_dnn300d.lib
opencv_face300d.lib
opencv_features2d300d.lib
opencv_flann300d.lib
opencv_highgui300d.lib
opencv_imgcodecs300d.lib
opencv_imgproc300d.lib
opencv_line_descriptor300d.lib
opencv_ml300d.lib
opencv_objdetect300d.lib
opencv_optflow300d.lib
opencv_photo300d.lib
opencv_reg300d.lib
opencv_rgbd300d.lib
opencv_saliency300d.lib
opencv_shape300d.lib
opencv_stereo300d.lib
opencv_stitching300d.lib
opencv_superres300d.lib
opencv_surface_matching300d.lib
opencv_video300d.lib
opencv_videoio300d.lib
opencv_videostab300d.lib
opencv_xfeatures2d300d.lib
opencv_ximgproc300d.lib
opencv_xobjdetect300d.lib
opencv_xphoto300d.lib
opencv_aruco300.lib
opencv_bgsegm300.lib
opencv_bioinspired300.lib
opencv_calib3d300.lib
opencv_ccalib300.lib
opencv_core300.lib
opencv_dnn300.lib
opencv_face300.lib
opencv_features2d300.lib
opencv_flann300.lib
opencv_highgui300.lib
opencv_imgcodecs300.lib
opencv_imgproc300.lib
opencv_line_descriptor300.lib
opencv_ml300.lib
opencv_objdetect300.lib
opencv_optflow300.lib
opencv_photo300.lib
opencv_reg300.lib
opencv_rgbd300.lib
opencv_saliency300.lib
opencv_shape300.lib
opencv_stereo300.lib
opencv_stitching300.lib
opencv_superres300.lib
opencv_surface_matching300.lib
opencv_video300.lib
opencv_videoio300.lib
opencv_videostab300.lib
opencv_xfeatures2d300.lib
opencv_ximgproc300.lib
opencv_xobjdetect300.lib
opencv_xphoto300.lib
五、遇到相关问题及解决方法
1.在cmake第二次进行编译时候,可能出现了cmake报错:
-- ICV: Downloading ippicv_windows_20140513.tgz...
CMake Error at 3rdparty/ippicv/downloader.cmake: (file):
file DOWNLOAD HASH mismatch for file: [/tmp/dpkg-mkdeb.NSafYgjHYT/src/opencv-3.0.-alpha/3rdparty/ippicv/downloads/linux-d80cb24f3a565113a9d6dc56344142f6/ippicv_linux_20140513.tgz]
expected hash: [d80cb24f3a565113a9d6dc56344142f6]
actual hash: [20d82f68c11c137093b960677093fdac] Call Stack (most recent call first):
3rdparty/ippicv/downloader.cmake: (_icv_downloader)
cmake/OpenCVFindIPP.cmake: (include)
cmake/OpenCVFindLibsPerf.cmake: (include)
CMakeLists.txt: (include)
这种情况就可以在http://sourceforge.net/projects/opencvlibrary/files/3rdparty/ippicv/ 网站手动下载ippicv压缩包,放到D:\opencv3\opencv\sources\3rdparty\ippicv\downloads\windows-b59f865d1ba16e8c84124e19d78eec57 文件夹中,然后再重新编译cmake。
六、参考资料
【1】https://github.com/Itseez/opencv_contrib/blob/master/README.md 这个是用cmake-gui编译opencv_contrib的英文说明文档。
【2】http://segmentfault.com/a/1190000003496009 poemqiong 博主的opencv_contrib文章参考
【3】http://stackoverflow.com 可以在国外的这个论坛上寻找你遇到各种安装问题,一般解答都挺有效的。
Windows环境中编译opencv3.0同时加入OPENCV_contrib库及解决遇到相关问题[contrib 必须要3.1以上的opencv才支持了]的更多相关文章
- 树莓派中编译Opencv3.4.1和OpenCVSharp库
一.简介 本文主要讲在树莓派中编译Opencv3.4.1和OpenCVSharp库,方便C#开发人员可以通过Mono或者Netcore运行C#通过OpenCVSharp写的OpenCV库. 二.过程 ...
- 使用MSYS2环境中编译Qt5.5.0的补丁
Qt的configure脚本对MinGW静态编译支持不太完善,总有这样那样的问题.如果你不嫌麻烦,而且可以接受高版本的Qt的话,可以考虑使用我做的补丁在MSYS2环境中编译.Qt5.4.2的补丁 Qt ...
- windows环境VS2015编译TensorFlow C++程序完全攻略
本文参考和综合了多篇网络博客文章,加以自己的实践,最终终于在windows环境下,编译出可以用于C++程序调用tensorflow API的程序,并执行成功. 考虑到网络上关于这方面的资料还较少,特总 ...
- 如何在windows环境中搭建apache+subversion(ZT)
我一直有一个想法就是在本机上象scm一样的搭建一个subversion服务器,然后每天写完代码的时候提交一下,这种感觉好好哦,之前我在windows环境中搭建过纯subversion的服务器兴奋过一阵 ...
- 树莓派中编译OpenCV3.4.1和OpenCvSharp
一.简介 本文重点描述在树莓派中编译OpenCV3.4.1和OpenCvSharp,大家都知道OpenCVSharp是使用C#调用OpenCV最简洁的一个库.但是在Linux上或者树莓派上运行时,需要 ...
- 在Windows环境中利用Responder工具窃取NTLMv2哈希
在Windows环境中利用Responder工具窃取NTLMv2哈希 翻译自:https://github.com/incredibleindishell/Windows-AD-environment ...
- Windows环境中,通过Charles工具,抓取安卓手机、苹果手机中APP应用的http、https请求包信息
Windows环境中,通过Charles工具,抓取安卓手机.苹果手机中APP应用的http.https请求包信息1.抓取安卓手机中APP应用的http请求包信息1)在电脑上操作,查看Windows机器 ...
- 【Azure 环境】在Windows环境中抓取网络包(netsh trace)后,如何转换为Wireshark格式以便进行分析
问题描述 如何在Windows环境中,不安装第三方软件的情况下(使用Windows内置指令),如何抓取网络包呢?并且如何转换为Wireshark 格式呢? 操作步骤 1) 以管理员模式打开CMD,使用 ...
- windows环境中hbase源码编译遇到的问题
转载请注明出处 问题一 [ERROR] Failed to execute goal org.codehaus.mojo:findbugs-maven-plugin:3.0.0:findbugs (d ...
随机推荐
- 九十三:CMS系统之cms后台登录功能
config form from wtforms import Form, StringField, IntegerFieldfrom wtforms.validators import Email, ...
- zabbix通过SDK和API获取阿里云RDS的监控数据
阿里云的RDS自带的监控系统获取数据不怎么直观,想要通过API获取数据通过zabbix显示,因为网上资料缺乏和其他一些原因,获取API签名很困难,但使用阿里云的SDK可以完美避开获取签名的步骤. 阿里 ...
- Mac运行React Native安卓项目报错解决
传送门参考: 下面的这个链接很详细了,一步一步就好.... https://github.com/NARUTOyuyang/React-Native 然而在运行react-native run-and ...
- koa2中间件
在我看来,前端框架的中间件的思想来源于传统后端的切面编程(AOP)思想,比如我们常见的身份校验(JWT). axios的拦截器也是基于这种程序设计模式的. 在koa中,实际上是由一个数组对象来保存所有 ...
- 快速搭建WordPress博客
博主在看了朋友的博客后 决定也搭建一个wordPress 博客 思路 1.购买服务器 2.Cenots环境配置 3.安装wordpress 工具 推荐使用 Xshell 6,当然也可以用其他 服务器推 ...
- docker部署jar、war包方法
一.将war包放入容器 1.# docker imagesREPOSITORY TAG IMAGE ID ...
- 【机器学习】【计算机视觉】非常全面的图像数据集《Actions》
目录(?)[+] 1.搜狗实验室数据集: http://www.sogou.com/labs/dl/p.html 互联网图片库来自sogou图片搜索所索引的部分数据.其中收集了包括人物.动物.建筑 ...
- 【ARM-Linux开发】Linux环境下使用eclipse开发C++动态链接库程序
Linux环境下使用eclipse开发C++动态链接库程序 Linux中也有类似windows中DLL的变成方法,只不过名称不同而已.在Linux中,动态链接叫做Standard Object,生成的 ...
- Linux下使用 minicom 自动重复发送数据的实现
目录 在minicom中添加脚本路径 编写脚本 执行脚本 一个项目里要用的设备需要用串口来模拟传感器来测试,还是Linux下的. 串口助手cutecom很好用,但是不能定时发送数据. 所以用下面这个脚 ...
- Min swaps to sort array
Given an array with distinct numbers, return an integer indicating the minimum number of swap operat ...