CentOS6.5上配置Python2.7+OpenCV2.4.7

本文讲述在Linux上使用配置Python调用OpenCV的开发环境

环境:CentOS 6.5 +Python2.7.8+OpenCV2.4.7

0.安装OpenCV环境要求(Installation in Linux)

OpenCV.org的要求:

  • GCC 4.4.x or later()
  • CMake 2.8.7 or higher
  • Git(如果直接下载了源码,这个没必要)
  • GTK+2.x or higher, including headers (libgtk2.0-dev)
  • pkg-config
  • Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
  • ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
  • [optional] libtbb2 libtbb-dev
  • [optional] libdc1394 2.x
  • [optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev

1.安装gcc

实际测试的时候发现,GCC=4.4.7还是会出问题,所以本人用的是GCC-4.8.3,更新GCC版本请参照http://blog.csdn.net/dyllove98/article/details/8917485

安装gcc:yum install gcc

验证版本:gcc -v 或者 gcc --version,版本必须>4.4.x

这样安装的GCC版本是4.4的,所以首先升级为4.8,升级方法请看

centos 6 升级gcc,这个方法是靠谱的

安装gcc-c++:yum install gcc-c++

2.安装cmake (因为源里面的cmake版本不对,所以直接源码安装):

下载cmake-3.0.0.tar.gz,编译安装

tar -zxvf cmake-3.0.0.tar.gz
cd  cmake-3.0.0
./configure
make -j8
make install

3.安装gtk:yum install gtk*

安装pkg-config

gtk*安装完了以后会带有pkg-config

yum info pkgconfig 查看是否已经安装

4.安装Python:下载Python-2.7.8.tgz

tar -zxvf Python-2.7.8.tgz
cd  Python-2.7.8
./configure
make -j8
make install

安装python-dev:

yum install python-dev*

安装numpy:

tar -zxvf numpy-1.8.1.tar.gz

cd  numpy-1.8.1

python setup.py install

numpy 和 python安装不成功的话后面opencv make的时候不会生成cv.so,所以这一步要确定numpy安装正确

5.编译安装opencv

cmake -D WITH_IPP=OFF -D WITH_OPENCL=OFF WITH_GTK_2_X=ON -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ../../opencv-masterv

make -j8

make install

WITH_IPP  是否开启IPP支持

WITH_OPENCL 是否开启OpenCL支持

WITH_GTK_2_X  图形界面相关的支持,如果使用opencv用到了显示相关的,这个必须开启

参数都在CMakeLists.txt中有介绍,还有很多参数可以设置,参数都有默认值,可以根据需要自己设置

6.c++ 调用测试

#include "opencv2/core/core.hpp"

#include "opencv2/highgui/highgui.hpp"

#include <stdio.h>

using namespace cv;

int main( int argc, char** argv ){
    Mat image;
    image = imread( argv[1]);

    if( argc != 2 || !image.data ){
        printf("没有图片\n");
        return -1;
    }

    namedWindow( "显示图片", CV_WINDOW_AUTOSIZE );
    imshow( "显示图片", image );
    waitKey(0);

    return 0;
}

编译:g++ test.cpp -lopencv_imgproc -lopencv_highgui -lopencv_core

能显示图片说明c调用的方法ok了

7.python调用测试

进入python命令行,import cv2,如果没有提示说明安装python中也可以使用opencv了

如果出错看看 /usr/local/lib/python2.7/site-packages 下是否存在 cv2.so,如果不存在,找找opencv build时的原因吧

由于我们要用到sift算法,所以先测试下sift能不能用

运行 opencv-master/samples/python2/目录下的 find_obj.py

python find_obj.py --feature=sift imagea.jpg imageb.jpg

8.可能遇到的问题:

1./usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15‘ not found

(http://blog.sina.com.cn/s/blog_a39910330101jads.html)

2.Python缺少zlib解决办法

(http://blog.sina.com.cn/s/blog_62d4d5900101a0z4.html)

3.OpenCV: “libopencv_core.so.2.3: cannot open shared object file: No such file or directory”

opencv的so库目录没加到 ld.so.conf,所以

echo "/usr/local/lib/">>/etc/ld.so.conf

ldconfig

4./usr/bin/ld: /tmp/ccMRviO3.o: undefined reference to symbol ‘[email protected]@GLIBC_2.1‘

/usr/bin/ld: note: ‘[email protected]@GLIBC_2.1‘ is defined in DSO /lib/libm.so.6 so try adding it to the linker command line

/lib/libm.so.6: could not read symbols: Invalid operation

collect2: error: ld returned 1 exit status

http://stackoverflow.com/questions/14676018/install-opencv-and-compile-c-program-using-gcc

编译时加上 -lm参数

5.Python2.7.3的No module named zlib错误

自己编译安装zlib或者./configure --with-zlib

6.Linking CXX shared library ../../lib/libopencv_imgproc.so /usr/bin/ld: /opt/intel/ipp/lib/ia32/libippcv_l.a(ippcv00242as.o): relocation R_386_GOTOFF against undefined symbol `ippJumpIndexForMergedLibs‘ can not be used when making
a shared object

/usr/bin/ld: final link failed: Bad valuecollect2: ld return 1

make[2]: * [lib/libopencv_imgproc.so.2.4.3] error 1

make[1]:[modules/imgproc/CMakeFiles/opencv_imgproc.dir/all] error 2

make: ** [all] error 2

https://software.intel.com/en-us/forums/topic/335961

http://answers.opencv.org/question/3871/opencv243-build-with-the-intel-ipp-failed/

如果出现这个错误,就是因为IPP的原因,一般都不用IPP,所以可以编译的时候直接禁用 WITH_IPP = OFF设置

CentOS6.5上配置Python2.7+OpenCV2.4.7

时间: 2024-10-09 12:29:06

CentOS6.5上配置Python2.7+OpenCV2.4.7的相关文章

centos6.5上配置apache + mysql + php4.4.9 + eaccelerator-0.9.5 + postgresql-8.3.13 备忘

1.apache + mysql 直接利用 yum 安装 yum -y install httpd httpd-devel mysql mysql-server httpd-manual mod_perl mod_auth_mysql mysql-connector-odbc mysql-devel libdbi-dbd-mysql 2.编译postgresql----- 3.编译php4.4.9./configure --enable-mbstring --with-zlib --withou

在centos6.4上配置vim的一些零碎记录

上一篇日志已经step by step地实录了如何在本机mac上配置vim开发环境已经各种插件. 有了一定经验之后,把配置vim的环境到了实验室远程server上centos6.4的环境下配置,这台机器是内网服务器连外网比较麻烦. 主要就是多了server无法联网的条件,这个将来在公司配置开发机环境也是基本不能联网的,所以就当提前适应了吧. 这里把遇到的一些关键点记录下来,以便后个人后续查阅. 编译vim74 由于YouCompleteMe插件需要vim7.3高版本支持:而server上的vim

CentOS6.5上安装Python2.7和PIP

目前大部分用户使用的CentOS6.5上默认的Python还是2.6版本.升级到Python2.7碰到很多问题.本文将介绍如何安装Python2.7. 1. 安装必要的准备包 安装过程将用到gcc,方便起见,安装"Development Tools" yum groupinstall "Development tools" 另外,Python安装中需要的一些依赖包 yum install zlib-devel bzip2-devel openssl-devel nc

在CentOS6.5上配置基于主机的入侵检测系统(IDS)

项目背景: AIDE ("高级入侵检测环境"的简称)是一个开源的基于主机的入侵检测系统.AIDE通过检查大量文件属性的不一致性来检查系统二进制文件和基本配置文件的完整性,这些文件属性包括权限.文件类型.索引节点.链接数.链接名.用户.组.文件大小.块计数.修改时间.添加时间.创建时间.acl.SELinux安全上下文.xattrs,以及md5/sha校验值在内的各种特征. AIDE通过扫描一台(未被篡改)的Linux服务器的文件系统来构建文件属性数据库,以后将服务器文件属性与数据库中的

CentOS6.6上安装Python2.7.10

CenoOS6.6 64位系统默认的Python版本是2.6.6,工作中需要使用Python2.7.10.本文介绍一下Python2.7.10的安装方法.切记:不可覆盖Python2.6.6,小心你的系统不能用了.总的来说安装过程是:Python2.7.10源码安装---->setuptools16.0安装---->pip安装 Python2.7.10源码安装预安装 yum groupinstall "Development tools";yum install zlib-

如何在CentOS6上安装Python2.7和Python3.3

原文来自http://toomuchdata.com/2014/02/16/how-to-install-python-on-centos/,个人觉得对在linux安装新版本Python是很有参考意义,因而转载,原文是英文的,本人简单翻译下,大家看懂即可,有不妥的地方请留言. 如何在CentOS 6上同时安装Python 2.7和Python 3.3 本文将介绍如何在CentOS 6上安装Python 2.7和3.3.下面以Python 2.7.6和Python 3.3.5为例进行说明,但本人实

CentOS6.5上golang环境配置

CentOS6.5上golang环境配置 一.下载和解压go环境包 >>cd /usr/local/src/ >>wget -c http://golangtc.com/static/go/go1.4beta1.linux-amd64.tar.gz >>tar zxvf go1.4beta1.linux-amd64.tar.gz -C /usr/local 二.设置系统环境变量 >>vi /etc/profile export GOROOT=/usr/loc

CentOS6下编译安装Python2.7.6方法

关于在CentOS6下编译安装Python2.7.6的方法非常的多了,小编以前也介绍过相关的文章了,下面一聚教程小编再来为各位介绍一下吧,希望文章能帮助到各位. CentOS下面Python在升级到2.7.6的时候,没有找到安装包直接安装,只能通过源代码编译的方式来安装Python 2.7.6版本.这篇是编译和安装Python2.7.6的过程记录. CentOS系统中安装了development tools.要编译安装Python,执行下面代码:  代码如下 复制代码 $ pushd /usr/

Centos6.5安装配置KVM

1. vmware安装centos6.5 64位 (略) 其中有几个注意的地方:a. 内存给4g,CPU2颗b. 磁盘给50g, 或者再单独分一个磁盘,用来存储虚拟机文件c. 最关键的一步,在创建虚拟机时,启用CPU虚拟化 2.  安装kvm前的准备工作 a. 清除iptables规则 service iptables stop; service iptables save b. 关闭selinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /