Python调用opencv的原理是:opencv编译出共享库文件,python把这个共享库文件作为一个模块加载并使用。通俗点就是,编译opencv的时候开启python接口选项,编译好了会产生cv2.so(linux下)或者cv2.pyd(windows下)这个共享库文件,python代码中import这个cv2就可以用了。为了能正确import它,往往需要把cv2.so放在python找包能找到的路径下,或者修改PYTHONPATH环境变量让它包含cv2.so所在路径。此外,python的opencv接口中,图像使用numpy数组表示的,所以往往还需要安装numpy、scipy、matplotlib这几个包。

step:

初始化开发环境:

yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers gd gd2 gd-devel gd2-devel perl-CPAN pcre-devel sqlite-devel blas-devel lapack-devel

一、

安装python2.7

tar -xf Python-2.7.9.tar.xz
cd Python-2.7.9
./configure --prefix=/usr/local/  -enable-shared CFLAGS=-fPIC
make
/usr/bin/install -c -m 644 ./Tools/gdb/libpython.py python-gdb.py
make altinstall

报错处理:python: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory

  1. 可以使用如下方式编译Python以解决这个问题:
        ./configure --enable-shared --prefix=/usr/local/python27
        make && make install
      2. cp /usr/local/python27/lib/libpython2.7.so.1.0 /usr/local/lib
         cd /usr/local/lib
         ln -s libpython2.7.so.1.0 libpython2.7.so
      3. 使用命令whereis libpython2.7.so.1.0得到如下结果就说明
        libpython2.7.so.1: /usr/local/lib/libpython2.7.so.1.0
      4. 如果whereis没有结果,或者还有import错误,可以尝试如下操作:(可用)
        在/etc/ld.so.conf中加入新行/usr/local/lib
        保存后,运行
        /sbin/ldconfig
        /sbin/ldconfig -v

因为后期还需要使用pip安装模块所以要安装pip:具体参考:http://crfsz.blog.51cto.com/7835882/1889350

二、NumPy 一个用于大型矩阵处理的库,这个需要安装不然没办法去编译opencv。

unzip numpy-1.11.1.zip
cd numpy-1.11.1/
python setup.py install

三、cmake 编译OpenCV时使用,也需要手动安装。

wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz
tar -zxvf cmake-2.8.10.2.tar.gz
cd cmake-2.8.10.2
./bootstrap
gmake
gmake install
cmake -version

四、安装openvc

cd opencv-3.0.0-beta/
// 创建build
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=release -D CMAKE_INSTALL_PREFIX=/usr/local ..
注意了:这一步开始编译opencv,这里会出现要下载ippicv_linux_20151201.tgz这么个东西,这里是个坑啊,因此上面步骤应该会出现错误,因此到网上下载这个文件,将其复制到自己的目录
opencv-3.0.0-beta/3rdparty/ippicv/downloads/linux-8b449a536a2157bcad08a2b9f266828b/中,覆盖掉原来的tgz文件。
然后重新编译cmake ,这是应该不会出错了。如果没提示错误:
make
make install
则完成安装

ps:安装过程时间可能会有点长10~30分钟左右,编译完成之后OpenCV就安装到了指定的/usr/local下面的一些目录中,库文件就安装到了/usr/local/lib下,Python的模块安装位置是:/usr/local/lib/python2.7/site-packages,执行 ls /usr/local/lib/python2.7/site-packages/ 可以看到两个文件,一个是cv2.so一个是cv.py

测试py脚本:

#!/usr/bin/python# -*- coding:utf-8 -*-import cv2
p_w_picpath = cv2.imread("test.jpg")print p_w_picpath
cv2.imwrite("test1.jpg",p_w_picpath)


wKioL1klPADAf6IHAAAT5Jlzoug358.png-wh_50

六、安装opencv爬的坑:

ImportError: No module named skp_w_picpath.feature

pip install scikit-p_w_picpath


未完待续……