python+opencv学习笔记(一)

win7 64位系统下python+numpy+scipy+opencv+contrib的安装与配置


参考文献及网站:

《OpenCV 3计算机视觉——python语言实现》(原书第2版)[爱尔兰]Joe Minichino  [加]Joseph Howse 

《计算机视觉特征提取与图像处理》Feature Extraction & Image Processing for Computer Vision Third Edition  [英]Mark S.Nixon     Alberto S.Aguado著     杨高波、李实英译

添加OpenCV_contrib库至OpenCV3.1.0中(Windows 64位 环境下编译OpenCV3.1.0和OpenCV_contrib)




1. 安装python 2.7.10

2.安装numpy

首先下载numpy-1.11.3+mkl-cp27-cp27m-win_amd64.whl       (依据自己的版本下载。网站链接为http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy

将此文件放到python安装的文件夹里的Scripts文件夹里面,该文件夹里面有pip等。我的是E:\python27\Scripts


然后在dos里输入命令行pip2.7 install E:\python27\Scripts\numpy-1.11.3+mkl-cp27-cp27m-win_amd64.whl

回车后开始安装,很快安装就完成了,安装成功后提示successfully installed numpy-1.11.3+mkl


检验是否将numpy成功安装:

在python shell下输入import numpy,没有提示异常,成功安装。


3.安装scipy

之前看到网站上有人说安装scipy的前提除了要安装好numpy+mkl外,还要安装好pillow,不知道是不是这样,但还是先安一个避免出问题。还是在之前下载numpy的网站上下载Pillow-4.0.0-cp27-cp27m-win_amd64.whl然后放到E:\python27\Scripts文件夹中,同样的方法安装好.


现在就可以正式开始安装scipy了。下载的是scipy-0.18.1-cp27-cp27m-win_amd64.whl,用同样的方法安装,安装时间会稍微久一点。


然后检测一下是否安装成功。


4.安装opencv

在官网上下载opencv-3.2.0-vc14自解压文件,运行时提示输入一个目标文件夹,我输入的是E:\,然后就会建立一个子文件夹,称为E:\opencv。

复制E:\opencv\build\python\2.7\x64\cv2.pyd到E:\python27\Lib\site-packages。这样,新安装的python就可以找到OpenCV了。

编辑环境变量,把E:\opencv\build\x64\vc14\bin添加到path中。


5.安装Contrib模块

为什么要安装这个模块呢?因为有很多有用的模块包含在这个称为opencv_contrib的资源库中,它们可以在https://github.com/opencv/opencv_contrib上下载opencv_contrib-master的zip包然后解压。

下载安装cmake-gui。(官网下载,一定要正确下载对应版本的cmake,安装略)

打开cmake,用cmake编译opencv。

把E:\opencv\sources文件夹里的CMakeLists.txt直接拉到cmake里,就这样了:


然后修改“where to build the binaries”:我的是E:\opencv\Mybuild。

然后点击Configure,选择编译器,我的是visual studio 2013 win64。(如果没有vs就需要大把时间来安装下vs了。)

显示Configuring done 后,在search中搜索到OPENCV_EXTRA_MODULES_PATH,在Value中输入E:\opencv_contrib-master\modules,再次点击configure。完成后,再点击generate,显示Generating done。



这样,cmake的任务就完成了,Mybuild文件夹里多出了很多文件。

找到其中的OpenCV.sln文件打开,界面如下。


选择Release x64调试环境。

然后ctrl+shift+B,生成解决方案,等待完成。

完成后,找到CmakeTargets中的INSTALL单击右键,选择仅用于项目,然后选择仅生成INSTALL。