Windows环境中编译opencv3.0同时加入OPENCV_contrib库及解决遇到相关问题

因为opencv3.0默认安装中没有加入SIFT、SURF等点特征检测,一百度下一跳,原来这玩意还弄了个其他的库,还只能在GitHub上才能弄到,这两天弄opencv3的contrib库,遇到了一些问题,为了让大家更好、更快用上contrib库,根据谷歌百度的几个问题,现分享给大家完整流程,也欢迎大家与我讨论其他opencv方面的问题。

一、下载安装准备

  下载对应版本的以上软件:opencv3.0.0可以直接解压,我的路径为D:\opencv3,解压完成后会生成D:\opencv3\opencv的目录形式。

  github软件会在线直接安装,在桌面可以直接使用Git Shell ,($ cd D:\CVRS_Code\GitHub  也可以设定opencv_contrib下载的其他路径),输入以下命令下载opencv_contrib到指定目录。 

1 D:\CVRS_Code\GitHub> git clone https://github.com/Itseez/opencv_contrib.git

  cmake_gui 软件直接安装。OK,现在准备工作就绪。

二、利用CMake编译opencv和opencv_contrib库

  1. 打开cmake_gui.
  2. 把opencv/source文件夹中的CMakeLists.txt文件直接拖入cmake_gui中,where is the source code自动选择opencv的安装目录为D:\opencv3\opencv\source.
  3. 更改where to build the binaries 目录,即我们将要编译的目录,我的是:D:\opencv3\opencv\Mybuild
  4. 点击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文件夹外面,编译不成功,所以这里只介绍我的方法)。
  5. 可以再红色区域内再次去掉BUILD_OPENCV 和WITH_CUDA等有些硬件不支持的库,再次点击configure,正常情况会成功显示Configure Done! 然后点击Generate生成。

三、利用VS编译Debug和Release库

  1. 打开D:\opencv3\opencv\mybuild目录下的OpenCV.sln
  2. 在CMake Target中找到 INSTALL ,在Debug和Release的条件中分别右键选择build,生成debug和release库,这个过程大概持续10-20分钟。
  3. 我们会在D:\opencv3\opencv\Mybuild\install文件夹中看到这几个文件目录
--bin
--etc
--include
   --opencv
   --opencv2
--x86
  --vc10
     --bin
     --lib
     --staticlib
--LICENSE
--OpenCVConfig.cmake
--OpenCVConfig-version.cmake

四、Windows和VS中配置Opencv3

  1. 添加环境变量PATH D:\opencv3\opencv\Mybuild\install\x86\vc10\bin ,记得多个需要用分号(;)隔开。
  2. 任意建立一个新的工程,打开视图(View)->Other Windows->Property Manager。点击Debug,双击Microsoft.Cpp.Win32.user,在其中设置:(以下设置完成之后,重复2的操作,选择Release,同样方式设置Microsoft.Cpp.Win32.user)
    1. VC++目录-->包含目录,添加:

      • D:\opencv3\opencv\Mybuild\install\include
      • D:\opencv3\opencv\Mybuild\install\include\opencv
      • D:\opencv3\opencv\Mybuild\install\include\opencv2
    2. VC++目录-->库目录,添加:
              D:\opencv3\opencv\Mybuild\install\x86\vc10\lib
    3. 链接器-->输入-->附加依赖项,添加:

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:71 (file):
  file DOWNLOAD HASH mismatch

    for file: [/tmp/dpkg-mkdeb.NSafYgjHYT/src/opencv-3.0.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:108 (_icv_downloader)
  cmake/OpenCVFindIPP.cmake:212 (include)
  cmake/OpenCVFindLibsPerf.cmake:12 (include)
  CMakeLists.txt:449 (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  可以在国外的这个论坛上寻找你遇到各种安装问题,一般解答都挺有效的。

时间: 2025-01-02 14:54:16

Windows环境中编译opencv3.0同时加入OPENCV_contrib库及解决遇到相关问题的相关文章

如何在windows环境中搭建apache+subversion(ZT)

我一直有一个想法就是在本机上象scm一样的搭建一个subversion服务器,然后每天写完代码的时候提交一下,这种感觉好好哦,之前我在windows环境中搭建过纯subversion的服务器兴奋过一阵,可是慢慢觉得这样每次用file://的形式去访问subversion好原始哦.昨天我下定决心一定要把apache+subversion的环境搭建起来.nnd居然我从9:00~18:00才搞定这个.为什么弄了那么就呢其实就是因为subversion的服务器端的版本是1.5和客户端的是1.6.4版本,

解决windows环境中python2.7'ascii' codec can't encode character

在python2.7下,将字符串写入到文件时会出现"UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position"的错误,原因是由于python基于ASCII处理字符的,当出现不属于ASCII的字符时,会出现错误信息. 原因是pip安装python包会加载我的用户目录,我的用户目录恰好是中文的,ascii不能编码.解决办法是: python目录 Python27\Lib\site-package

Windows环境中,通过Charles工具,抓取安卓手机、苹果手机中APP应用的http、https请求包信息

Windows环境中,通过Charles工具,抓取安卓手机.苹果手机中APP应用的http.https请求包信息1.抓取安卓手机中APP应用的http请求包信息1)在电脑上操作,查看Windows机器IP地址:cmd->ipconfig 在返回的结果中,查询得到IPv4地址. a)如果你的Windows机器是通过无线方式上网,则选择 无线局域网适配器 中的IPv4中IP地址. b)如果你的Windows机器是通过有线方式上网,则选择 以太网适配器 中的IPv4中IP地址. 2)在手机上操作,在你

树莓派中编译OpenCV3.4.1和OpenCvSharp

一.简介 本文重点描述在树莓派中编译OpenCV3.4.1和OpenCvSharp,大家都知道OpenCVSharp是使用C#调用OpenCV最简洁的一个库.但是在Linux上或者树莓派上运行时,需要编译对应的Linux和CPU架构的版本. 二.编译过程 #树莓派3b安装OPENCV3.4.1 apt-get install -y build-essential cmake libgtkglext1-dev libvtk6-dev zlib1g-dev libjpeg-dev libwebp-d

windows环境中利用NMake工具编译连接C++源代码

这篇文章是上一篇文章(http://www.cnblogs.com/LCCRNblog/p/4532643.html)的补充,因此需要先看看上一篇文章. 最近在写代码的时候,需要通过命令的方式来执行生成的c++源代码文件,因此需要学习有关windows环境下如何使用命令来编译连接c++原文件.这一篇文章是自己慢慢摸索实践得出的.作为自己入门的起点吧,后续还要好好深入理解这方面的知识. 1.准备 编写好main.cpp header.h header.cpp这三个源代码文件,并放入一个文件夹tes

【Code::Blocks】windows 环境下编译 Code::Blocks(已修正)

Code::Blocks 在2012-11-25发布了最新的12.11版本,相比上一个版本(10.05),Code::Blocks 进行了许多改进和更新(Change log). 引用 Wikipedia:Code::Blocks: Code::Blocks是一个免费.开源.跨平台的IDE,使用C++开发,并且使用wxWidgets做为GUI函式库.Code::Blocks使用了插件架构,其功能可以使用插件自由地扩充.目前, Code::Blocks主要针对开发C/C++程式而设计. Code:

Openstack 二次开发之:在windows 环境下编译Openstack-java-sdk

在windows环境下使用maven对openstack-java-sdk进行编译 编译源文件 下载源代码 git clonehttps://github.com/woorea/openstack-java-sdk.git 下载并安装gpg4win http://ftp.gpg4win.org/ 本次过程中下载的是gpg4win-2.2.2.exe 配置gpg 查看 F:\github\openstack-java-sdk>gpg --list-key gpg:C:/Users/Eric.sun

Windows环境下vs2015+opencv3.1+contrib库安装配置

最近几天在安装opencv,也看了网上的一些帖子,结合自己遇到的一些问题写了点内容. 准备: 1. opencv最新的版本是3.10,可以到官网下载http://opencv.org/.官网下载提取后会得到两个文件夹:build和sources.我们需要用到的是sources,用CMake重新编译sources里的内容,再添加contrib库.build里的内容是官网已经编译好的,有其他博客是讲利用build安装的,而这里我们并未用到.opencv也可从GitHub下载https://githu

编程经验:Cmake编译Opencv3.0&extra model所遇到的种种问题~

前段时间调研一个算法,作者提供了源代码,很自豪的宣布源代码已经集成在了3.0中,于是我就开始了"苦逼"的配置之旅,结果遇到了N个bug,还好自己有截图的习惯,本文就说说我遇到的问题,以及如何解决部分问题. 1. opencv_contrib-master 这是Opencv3.0的额外模块,里面提供了诸如xfeatures2d等新模块,集成了近两年来提出的优秀算法,比如我之前研究的Latch特征,就集成在了这个extra module中,但最主要的是,这个模块中的代码支持Matlab混合