[wiki]windows下重新编译OpenCV 及其附加库 opencv_contrib, 生成Python接口

OpenCV 3 之后改变了框架,采用了主体+插件的方式,插件里是一些新功能,有些还不稳定,官方在不断地更新。项目想用python调用opencv,低版本的opencv里的跟踪算法不够先进,OpenCV 3.1官方release的python接口(pyd文件)不含SURF,SIFT,Tracking等模块,要想使用OpenCV中的这些方法,就需要重新编译OpenCV及其附加插件库:opencv_contrib 。

首先https://github.com/opencv/opencv_contrib,下载并解压文件。

安装好cmake

打开cmake的两个路径:

第一个是OpenCV的源文件,准确到opencv/sources文件夹(该目录下有Cmakelists文件,Cmake用它来生成)。例如我的是:G:/opencv3.1/opencv/sources

第二个是编译后的OpenCV库所在的文件夹,最好新建一个空文件夹,注意每次编译过程中出错重新编译,需要删除该目录下所有文件,然后重新编译。例如我的是:G:/opencvbuild

然后点击Configure,选择本机的编译器 我的是32位的VS2013 。不出意外会出错。

常见错误:

1.无法下载ffmpeg需要的dll,网上找相应版本下载并替换3rdparty/ffmpeg

2.无法下载IPPICV,我这儿提供个下载地址:ippicv_windows_20151201 直接将压缩文件添加到opencv\sources\3rdparty\ippicv\downloads\windows-04e81ce5d0e329c3fbc606ae32cad44d

3.CUDA的各种错误。Cmake中WITH_CUDA项取消打钩。

Configure没有问题后,找到OPENCV_EXTRA_MODULES_PATH ,其Value值为解压后的opencv_contrib的路径。例如我的是G:/opencv3.1/opencv/opencv_contrib/modules

然后再Configure,再Generate就可以啦。opencvbuild路径下面就多出来了一个VS工程:OpenCV.sln.

使用Visual Studio 2013打开该文件,发现工程还是比较庞大。找到ALL_BUILD,右键,build.经过较长时间的等待,就可以在opencvbuild/lib/Debug或者opencvbuild/lib/Release下面找到重新编译生成的cv2.pyd文件啦。把它放到python的安装目录下的Lib/site_packages下面就可以啦。

在Build过程中有可能出现问题,如果绝大多数模块都成功,只有极个别的模块有问题,可以选择将该模块从modules文件夹中删除重新cmake,然后VS编译。

然后是添加系统变量:把OpenCV的二进制的路径加入到Windows的PATH中。例如我的路径G:\opencvbuild\bin\Release

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

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

找相应模块里的Samples就可以开始愉快的测试demo了。

如opencv_contrib下的modules/tracking/tracker.py。

附上我的release版的pyd文件供参考:http://download.csdn.net/detail/cuclxt/9869628,没有积分的同学私信我发你。

你可能感兴趣的:(图像处理,OpenCV,目标跟踪)