Duxy's

a digged hole

为Python添加opencv支持

学习方向突然由机器学习转向了与图象处理结合了。因此尝试搭建一下图象处理环境。以人脸识别为主要研究方向,试着做一些实验。(某人告诉我,人脸识别已经做到准确率到98%以上了。。。)

要对图象做一些处理,查了一下,需要用到opencv,网上一直都说使用CVtypes就可以轻松解决,也有说Python现在已经自带CVtypes了。但是from CVtypes import *还是用不了。最终找到了一个解决方案。

其实挺简单的,为Python添加一个扩展而已。但现在好像已经不需要CVtypes了。opencv自带Python支持。步骤三步:

  1. 下载Python2.7并安装。(opencv提供的支持是针对2.7的,不少人说,3.4下的库太少了,并不好用)

  2. 下载opencv并自解压。解压后,会看到两个路径,一个是编译后版本,一个是源码。可能目录结构不同,但根据名字总能找到需要的东西。如我这个版本的文件是在/opencv/build/python/2.7/x86,一个编译后的cv2.pyd文件。
    将cv2.pyd拷贝到python目录下的Lib/site-packages下,该目录是手动添加Python包所用的路径。

  3. 这时候,理论上opencv已经可以使用了。但运行时,可能会报错。

    ImportError: numpy.core.multiarray failed to import
    Traceback (most recent call last):
    File <stdin>, line 1, in <module>
    ImportError: numpy.core.multiarray failed to import

意思是:需要装一个numpy。此时,要清楚自己的python版本,然后上numpy的sourceforge主页找一个对应的下载下来就是了。当然,opencv的版本也决定了需要使用的numpy版本,如果版本不符,照提示换一个就O啦。

opencv/sources/samples下有不少的测试文件。当环境配置完成后,执行opencv/sources/samples/python/drawing.py,就可以看到漂亮的效果了。

到最后才发现,官网写得还是比较清晰的,只是开始没找着页面。官网是:http://docs.opencv.org/trunk/doc/pytutorials/pytutorials.html