opencv3.0中contrib模块的添加+实现SIFT/SURF算法

平台:win10 x64 +VS 2015专业版 +opencv-3.x.+CMake+Anaconda3(python3.7.0)

 

Issue说明:Opencv3.0版本已经发布了有一段时间,在这段时间也是不断的进行了更新和修复,最近看了一下3.0新增的一些功能,感觉还是蛮强大的,作为一个一直以Opencv为开发环境的程序员来说是一定要体验一下这个新版本的,特别看到说在tracking领域近年比较好的文章TLD和 KCF都有扩展包了,那更是要尝试一下。尝试用扩展包实现sift/surf算法。

原因:opencv从2.x到3.x是一个很大的转变,对于很多功能不完善、性能不稳定的模块,都被方法了extra_modules(扩展模块)里面了。这样倒是稳定了,但是对于我这样的新手,要添加这些扩展模块却是相当的痛苦啊!!因为要用到sift/surf算法,但是3.0以后这些算法都放到了在xfeacture模块中,并不在主模块中,于是就开始了艰难的配置过程。

解决办法:Win10 x64+vs2015+opencv3.4.1+附加模块opencv_contrib+cmake3.15.2编译和配置

目录:

一、下载地址汇总(OpenCV+OpenCV_contrib+CMake)
二、中间遇到的Issue汇总
三、主要参考链接
四、项目Issue

 

一、下载地址汇总(OpenCV+OpenCV_contrib+CMake)

OpenCV:https://sourceforge.net/projects/opencvlibrary/files/opencv-win/

OpenCV_contrib:https://github.com/opencv/opencv_contrib/releases

CMake:https://cmake.org/download/


二、中间遇到的Issue汇总

Issue1:在github上下载资料,速度只有10几KB/s,下个opencv_contrib-3.4.1.zip,需要一个多小时!!!如何修改host文件加快github访问及下载速度?

答:进入目录C:\Windows\System32\drivers\etc并打开host文件

就是要将新的host添加到文件后面添加内容

访问:http://github.global.ssl.fastly.net.ipaddress.com/#ipinfo

查看IP地址(本人的是:151.101.185.194

然后访问:http://github.com.ipaddress.com/#ipinfo

查看IP地址(本人的是:192.30.253.112

然后将就可以,在host文件末尾添加新的数据(一定要另起一行哦!)

151.101.185.194 github.global.ssl.fastly.net
192.30.253.112 github.com

为了是host生效,

在cmd里输入如下指令

ipconfig /flushdns

参考:百度经验:github怎么修改host表下载——https://jingyan.baidu.com/article/ea24bc397265049a62b331d7.html

 

Issue2:我之前的电脑是Win10 x64+vs2015+opencv3.4.1(使用opencv-3.4.1-vc14_vc15.exe解压完成的,无附加模块opencv_contrib)+cmake3.13.4,参看网上 opencv3.0中contrib模块的添加——https://blog.csdn.net/streamchuanxi/article/details/51044929  配置一直报错?方案九(x64)、方案十(x86)成功!

答:网上opencv3.0中contrib模块的添加——https://blog.csdn.net/streamchuanxi/article/details/51044929中 从以下网址下载opencv源代码和扩展模块源代码(一定要从下面链接下载,实际此博客这块有错误!参看总结)。
OpenCV: https://github.com/Itseez/opencv
Extra Modules: https://github.com/Itseez/opencv_contrib

下载:opencv-master.zip+opencv_contrib-master.zip

然后点击“configure”按钮,更改内容,然后点击“configure”,回提示Generate Done。

在D:\opencv3\build下找到OPENCV.sln,打开,找到CMakeTargets下的INSTALL,在Debug(或Release)下分别右键生成,经过40分钟左右报错!!!

方案一:上边网址:opencv3-master.zip+opencv_contrib-master.zip+vs 14 2015 x64(第一次点击“configure”按钮选择)
   INSTALL生成时 报错100多项 警告100多项

方案二:上边网址:opencv3-master.zip+opencv_contrib-master.zip+vs 14 2015 win32(第一次点击“configure”按钮选择)
    INSTALL生成时 报错100多项 警告100多项

官网下载opencv:opencv-master.zip+opencv_contrib-master.zip  链接:https://github.com/opencv

方案三:官网:opencv4-master.zip+opencv_contrib-master.zip+vs 14 2015 x64(第一次点击“configure”按钮选择)
    INSTALL生成时 报错100多项 警告100多项

方案四:官网:opencv4-master.zip+opencv_contrib-master.zip+vs 14 2015 win32(第一次点击“configure”按钮选择)
    INSTALL生成时 报错100多项 警告100多项

 

方案五:怀疑CMake版本问题,下载最新的CMake3.15.2(官网——CMake:https://cmake.org/download/)重试了方案一二三四

 INSTALL生成时 报错100多项 警告100多项

方案六:怀疑Win10系统环境变量问题,去掉%JAVA_HOME%\bin;%MYSQL_HOME%\bin\;D:\Working\buildOpenCV\bin;D:\ProgramFiles\gtk_-bundle_2.24.10_win32\bin;D:\ProgramFiles\MinGW-V5.1.6\MinGW\bin重试了方案一二三四
 INSTALL生成时 报错100多项 警告100多项

 

方案七:Win10+VS2017编译opencv3.2.0和opencv_contrib3.2.0来调用text模块——https://www.jianshu.com/p/4d49aa5e5656  中注意在安装VS2017的时候需要勾选使用C++的桌面开发这个选项,否则后面用CMake编译的时候可能会提示找不到C++编译器。(估计应该就是需要右边小红框里的那个东西,但是保险起见我还是全装了=-=) 怀疑VS2015安装问题,
 在网上搜索VS2015未报此安装问题,另外自己安装博客也没有问题。

 

方案八:Win10+vs2015+opencv3.4.1+附加模块opencv_contrib+cmake3.11.0编译和配置——https://elody-07.github.io/opencv3.4.1+contrib+cmake3.11.0/#2-opencv3-4-1,重新下载opencv3.4.1+附加模块opencv_contrib

注意:opencv_contrib的版本一定要和opencv相同!!!下载:opencv-3.4.1-vc14_vc15.exe+opencv_contrib-3.4.1.zip
官网:opencv-3.4.1-vc14_vc15.exe+opencv_contrib-3.4.1.zip+vs 14 2015 win32(第一次点击“configure”按钮选择)
    INSTALL生成时 报错,但是这一次只报了两个错误:1.const char不能赋值为char
;2.模块计算机类型“x64”与目标计算机类型“X86”冲突

第一个错误通过定位(cv2.cpp的889行)修改“char* str = PyString_AsString(obj);”为“const char* str = PyString_AsString(obj);”解决

第二个错误无法修改

方案九:官网:opencv-3.4.1-vc14_vc15.exe+opencv_contrib-3.4.1.zip+vs 14 2015 x64(第一次点击“configure”按钮选择)
    INSTALL生成时 报错,但是这一次只报了两个错误:1.const char不能赋值为char;2.无法打开文件"python37_d.lib"   

 

第一个错误通过定位(cv2.cpp的889行)修改“char* str = PyString_AsString(obj);”为“const char* str = PyString_AsString(obj);”解决

 

第二个错误解决方案  参考࿱

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值