Cmake生成opencv,opencv_contrib的python接口及改进(原+转)

本文是基于http://blog.csdn.net/u012900686/article/details/69442406?locationNum=13&fps=1 做的优化与完善,主要针对配置过程出现的错误,OpenCV的Fisherface,Eigenface的部分,但具体实现时发现该库包含在opencv的contrib模块里,这个模块是opencv的扩展库,里面包括很多特征的算法,SIFT、SURF、Adaboost算法、ml还有神经网络等一些算法,很有用,但扩展库需要单独安装,前前后后花了一个礼拜的时间,终于成功了90%,后续是编程。。。
一、安装前准备工作

1.安装好visual studio 2013做之后的编译准备用

2.在我之后给的链接里下载opencv和opencv_contrib模块,这个opencv是未编译版(是我自己添加过ffmpeg,很容易cmake成功,建议下载“帅到被人打”的这个),也就是打开没有build文件夹的,这在之后的Cmake里很关键,最好用这个未编译的opencv,或者你可以在官网下载:
OpenCV: https://github.com/Itseez/opencv
Extra Modules: https://github.com/Itseez/opencv_contrib

3.官网上下载cmake的win32版,最新的就可以(不管你系统是64还是32都下载win32,因为Python的版本是win32)
cmake:https://cmake.org/download/

(建议直接下载文末前辈的网盘链接,除了visual studio外其他的我都压缩在一起了)

二、开始关键的Cmake步骤
1.新建一个opencv3文件夹,在里面分别建两个文件夹build和source,把上面下载好的opencv和opencv_contrib放在source文件夹里面,然后打开cmake-gui,如图:
这里写图片描述
2.在cmake_gui界面分别添加opencv和build的path,如果下载的是我的压缩包,按图上的就可以,如果是官网下载的,需要精确到opencv\source也就是有cmakelist.txt的那个文件夹路径下,如图:
这里写图片描述
注:只看路径

3.点击configure,等待configure成功

注:如果出现ffmpeg等报错,你得自己先下载好ffmpeg文件放在opencv\3rdparty\ffmpeg文件夹下,(我的压缩包里已经添加好了ffmpeg所以正常来说就等待configure成功就行,不会出现这个错误)如下图:
这里写图片描述

3.如上图所示,你看下是否找到你python的include等路径,如果有上图红线这个BUILD_python的话,说明成功,在这里再下载一个python3.6,把两个python的路径都添加在cmake里,然后在OPENCV_EXTRA_MOUDULES_PATH里添加opencv_contrib/modules的路径,再次点击configure等待成功,如下图:
这里写图片描述

4.configure成功以后,点击generate,不出意外这一步很快就生成好了

记着,一定要看有没有BUILD_opencv_python的接口,否则就重新configure,知道有为止,一般都是因为找不到路径,你按上面那张图手动添加好就行了

完成这一步基本你就完成了一半了

三、用visual studio 2013 编译opencv.sln文件

1.在build文件夹下找到opencv.sln文件,用visual studio打开
这里写图片描述

2.打开后,点击上面release或者debug选项选择配置管理器,选择Release和Win32,然后按照下图的顺序右键一个一个生成
这里写图片描述

图里是我把两个python版本都生成了,你也可以只生成python2或者3的pyd文件
等待大概20分钟左右,编译就完成了,我们的任务也就告一段落了

3.在build文件夹的lib里面,我们可以看到Release文件夹,打开后就可以找到cv2.pyd或者cv2.cp36-win32.pyd文件了,这也就是我们千辛万苦要得到的东西了
这里写图片描述

4.最后的最后,把这个宝贝的cv2.pyd文件老规矩放在python对应的lib\site-package文件夹下面

然后添加opencv的环境变量到PATH里,跟以前的用分号分隔,例如我的是D:\pyopencv\pyopencv3\build\bin\Debug,

最后呢,测试一下是否成功:
1.在python的交互界面中输入import cv2没有报错,说明重新编译的python接口成功

2.输入dir(cv2.xfeatures2d)不会报错,说明附加库opencv_contrib也已经成功编译好python接口,如下图
这里写图片描述

再找个例子例如opencv__contrib的多目标追踪Multitracking.py例程:
这里写图片描述

对我有帮助的一篇参考:
http://blog.csdn.net/u012900686/article/details/69442406?locationNum=13&fps=1
附下载链接:

网盘链接:http://pan.baidu.com/s/1pKPBs87

密码:isvx

注:

1.没有卸载python2.7,环境变量仍然是python2.7的路径,同时装python2.7和python3.6并不冲突

2.在Cmake后如果没有BUILD_opencv_python选项或者之后的visual studio没有opencv_python这个文件的话,就不要浪费时间编译了,每这么cmake+编译一次大概会花费1个半小时左右,我之前花费的时间一半都在这个上面,另一半是ffmpeg。

3.碰到问题多试几次,不行就先放着,以后再继续,别为这个影响了心态,不值当。

补充一下安装过程可能出现的错误:
1.vs编译opencv.sin文件的时候,会有缺少python27_d.lib,python27_d.dll 错误,解决方法是源码编译python生成python27_d.dll和python27_d.lib,https://www.python.org/downloads/source/
这里写图片描述
完了解压出来,进入pcbuild文件夹,用vs2013打开sin文件,直接执行,在文件夹里会生成win32文件这里写图片描述

打开win32后找到(python27类似)这里写图片描述
2. 将这两个文件分别添加到这里写图片描述
和这里这里写图片描述
3.接下来就可以用vs2012编译opencv.sin了

有什么不懂可以加我q 385105501

下面是网上的一个N人配置过程,我配了一次就好了,大家可以跟着试试
http://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_setup/py_setup_in_windows/py_setup_in_windows.html#install-opencv-python-in-windows

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值