用Cmake生成opencv_contrib的python接口

最近在看opencv的Fisherface,Eigenface的部分,但具体实现时发现该库包含在opencv的contrib模块里,这个模块是opencv的扩展库,里面包括很多特征的算法,SIFT、SURF、Adaboost算法、ml还有神经网络等一些算法,很有用,但扩展库需要单独安装,本以为很快就装好,结果却花费了我4天的时间,现在把我装的过程记录一下,以备以后参考或者给需要的人装的时候少走一些弯路

 

一、安装前准备工作

 

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

 

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

OpenCV: https://github.com/Itseez/opencv 

Extra Moduleshttps://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,如图:

用Cmake生成opencv_contrib的python接口_第1张图片

 

(忽略第三个文件夹,那是我做的备份)

 

2.在cmake_gui界面分别添加opencv和build的path,如果下载的是我的压缩包,按图上的就可以,如果是官网下载的,需要精确到opencv\source也就是有cmakelist.txt的那个文件夹路径下,如图:

用Cmake生成opencv_contrib的python接口_第2张图片

 

 

3.点击configure,等待configure成功

 

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

 

用Cmake生成opencv_contrib的python接口_第3张图片

 

 

 

如上图所示,是把你下载好的划红线的这三个文件放在opencv\3rdparty\ffmpeg文件夹下就可以了,再次configure成功

用Cmake生成opencv_contrib的python接口_第4张图片

 

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

用Cmake生成opencv_contrib的python接口_第5张图片

 

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

用Cmake生成opencv_contrib的python接口_第6张图片

 

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

 

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

 

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

 

1.在build文件夹下找到opencv.sln文件,用visual studio打开

用Cmake生成opencv_contrib的python接口_第7张图片

 

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

用Cmake生成opencv_contrib的python接口_第8张图片

 

图里是我把两个python版本都生成了,你也可以只生成python2或者3的pyd文件

等待大概20分钟左右,编译就完成了,我们的任务也就告一段落了

 

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

用Cmake生成opencv_contrib的python接口_第9张图片

 

用Cmake生成opencv_contrib的python接口_第10张图片

 

 

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

用Cmake生成opencv_contrib的python接口_第11张图片

 

 

然后添加opencv的环境变量到PATH里,跟以前的用分号分隔,例如我的是E:\Program Files (x86)\opencv3\build\bin\Release,

 

最后呢,测试一下是否成功:

1.在python的交互界面中输入import cv2没有报错,说明重新编译的python接口成功

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

用Cmake生成opencv_contrib的python接口_第12张图片

 

再找个例子例如opencv__contrib的多目标追踪Multitracking.py例程:

用Cmake生成opencv_contrib的python接口_第13张图片

 

动图太大,传不上来,我截了一张

 

对我有帮助的两篇参考:

  1. http://blog.csdn.net/cuclxt/article/details/52514350

  2. http://stackoverflow.com/questions/37517983/opencv-install-opencv-contrib-on-windows (推荐这个,早看到就不用走那么多弯路了)

 

附下载链接:

网盘链接: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.碰到问题多试几次,不行就先放着,以后再继续,别为这个影响了心态,不值当。

完毕!

---------------------------------------------------------------------------

转载请注明来源。

欢迎关注我的个人公众号相互交流

 

你可能感兴趣的:(计算机视觉opencv,opencv_contrib,python,cv2.pyd)