Opencv3.1+python2.7的CentOS7安装

来源:互联网 发布:自组织网络算法 编辑:程序博客网 时间:2024/06/01 10:14
@time    : Jan 13,2016 20:29@author  : duanxxnj@163.com
花了两天时间才把Openv3.1的Python安装完成。中间遇到了好多奇怪的错误,在这里记录下整个安装过程。

系统环境

[Duanxx@CentOS ~]$ uname -aLinux CentOS.Duanxx 3.10.0-327.3.1.el7.x86_64 #1 SMP Wed Dec 9 14:09:15 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux[Duanxx@CentOS ~]$ cat /etc/centos-releaseCentOS Linux release 7.2.1511 (Core) 

软件源安装

EPEL

主页
下载EL7后面的数据源即可

sudo rpm -ivh epel-release-latest-7.noarch.rpm

nux-dextop

主页
下载el7的数据源

sudo rpm  -ivh nux-dextop-release-0-5.el7.nux.noarch.rpm

ELRepo

主页

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.orgrpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

基本准备

sudo yum update
sudo yum install autoconf automake cmake freetype-devel gcc gcc-c++ git libtool make mercurial nasm pkgconfig zlib-devel

安装cmake-gui

这里需要特别说明一下,这个是一定要安装的,等会编译的时候需要使用到它
sudo yum install cmake-gui

为了支持GUI特征

sudo yum install gtk2-devel

为了支持摄像头

sudo yum install libdc1394-develsudo yum install libv4l-devel

为了支持视频媒体

sudo yum install ffmpeg-develsudo yum install gstreamer-plugins-base-devel

这里需要说明,ffmpeg其实最好是手动安装
这里给出手动安装教程连接手动安装教程连接

顺便说一句,很多人都在抱怨Centos上无法看视频的问题。
其实就是没有解码器。
个人建议使用vlc这个开源的视频解码器。

sudo yum install vlc

需要播放视频的时候,使用下面的命令即可

vlc name.mp4

关于python

我的python版本是当前最新2.7.11,集成在Anaconda中。
个人感觉这个很好用,建议大家安装使用

因为Centos是自带pyhton的,所以需要将Anaconda的python添加环境变量。

vim ~/.bashrc

在文件最后面添加:

PATH="/usr/local/anaconda2/bin:$PATH"export PATH

这样在使用python的时候用的就是Anaconda的python了。

ipp_icv下载

下载地址

这个东西是一个并行计算库,在编译的时候如果没有这货,就会编译不通过。
虽然可以直接在命令中忽略这个,但个人建议还是用上比较好

可选的依赖项

上面的那些依赖如果安装完成后,就已经具备了安装Opencv的基本依赖了。根据个人需要,可能还需要安装一些其他的依赖,下面给出一些可选的依赖项。

图形文件解码库更新

opencv自带了一些png/jpg等图片的解码器,但可能有一些老了。可以使用一些比较新的图片解码库:
sudo yum install libpng-develsudo yum install libjpeg-turbo-develsudo yum install jasper-develsudo yum install openexr-develsudo yum install libtiff-develsudo yum install libwebp-devel

线程构建模块

Intel’s Threading Building Blocks (TBB),是Intel公司开发的并行编程开发的工具。
想要使用这个的话,在Cmake的时候,需要使用参数 -D WITH_TBB=ON

sudo yum install tbb-devel

矩阵计算

Eigen是一个开源的C++矩阵计算工具
想要使用这个的花,在Cmake的时候,需要使用参数 -D WITH_EIGEN=ON
当然最好的安装方式是从源码安装,这里直接用yum安装了

sudo yum install eigen3-devel

cuda安装

cuda是NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。
使用C语言来为CUDA™架构编写程序。

我的笔记本上只有Centos系统,并不是使用的虚拟机。
如果是你使用的是虚拟机,就可以直接跳过这个了。

sudo rpm -ivh http://ftp-srv2.kddilabs.jp/Linux/packages/fedora/epel/7/x86_64/e/epel-release-7-5.noarch.rpmwget http://developer.download.nvidia.com/compute/cuda/7_0/Prod/local_installers/rpmdeb/cuda-repo-rhel7-7-0-local-7.0-28.x86_64.rpmsudo rpm -ivh cuda-repo-rhel7-7-0-local-7.0-28.x86_64.rpmsudo yum install cuda

Contrib modules

在opencv2.4中,opencv_contrib模块已经集成在了其中。但是对于opencv3.1而言,由于这个模块中的代码相对不太稳定它并没有集成在opencv3.1中。[下载连接](https://github.com/Itseez/opencv_contrib)强烈建议安装opencv的时候也安装这个。当然,现在可以不用安装,毕竟东西太多就会繁琐。它的安装方式在github上有详细的说明。如果想要安装,可直接参考,这里不做过多说明。

Opencv3.1编译安装

下载Opencv3.1

源码连接

unzip opencv-3.1.0.zipcd opencv-3.1.0mkdir buildcd build

先Cmake一次

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

此时会发现Cmake停在了下面这个位置,直接用Ctrl+C停掉当前的Cmake

-- checking for module 'libgphoto2'--   package 'libgphoto2' not found-- ICV: Downloading ippicv_linux_20151201.tgz...

进入下面这个文件夹,会发现ippicv_linux_20151201.tgz文件

opencv-3.1.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e

用 rm ippicv_linux_20151201.tgz,删除这个文件。
然后将上面ipp_icv下载中下载的文件放在这个文件夹下。

重新使用上面的命令Cmake一次。这一此Cmake可以通过,并且也可以作make擦作。
但是,在Cmake提供的logout中可以看到下面这条信息:

-- Found PythonInterp: /usr/local/anaconda2/bin/python2.7 (found suitable version "2.7.11", minimum required is "2.7") -- Could NOT find PythonLibs: Found unsuitable version "2.7.5", but required is exact version "2.7.11" (found /lib64/libpython2.7.so)-- Could NOT find PythonInterp: Found unsuitable version "2.7.11", but required is at least "3.4" (found /usr/local/anaconda2/bin/python)-- Could NOT find PythonInterp: Found unsuitable version "2.7.11", but required is at least "3.2" (found /usr/local/anaconda2/bin/python)

这里PythonInterp和PythonLibs都不符合,会导致Python的Opencv库无法编译成功。
但是C++的库是没有问题的。
为了让Opencv的Python库可以编译出来,需要做下面一步:

使用Cmake-gui

cmake-gui ..

在cmake-gui的界面中找到python的配置选项,并且设置如下:
这里写图片描述

大家可以按照自己的python环境来配置这些选项。

再按Configure,就会看到如下配置,这些配置必须要有。

  Python 2:    Interpreter:                 /usr/local/anaconda2/bin/python2.7 (ver 2.7.11)    Libraries:                   /usr/local/anaconda2/lib/libpython2.7.so (ver 2.7.11)    numpy:                       /usr/local/anaconda2/lib/python2.7/site-packages/numpy/core/include (ver 1.10.1)    packages path:               /usr/local/anaconda2/lib/python2.7/site-packages

再按一下Generate,完成后就可以退出cmake-gui了。

编译安装Opencv

make 编译,后面的参数 -j8 指的是我的cpu有8线程,这个提议提高编译的效率。
大家需要根据自己的CPU的线程数来确定这个值。
当然,直接make也没问题,就是慢一点而已。

make -j8

看到这两句,就说明编译成功,否则的话将上面cmke-gui的步骤再来一次。

Linking CXX shared module ../../lib/cv2.so[100%] Built target opencv_python2

最后一行命令:

sudo make install

测试Opencv

在python的编辑器中写下面的代码,我用的编辑器是PyCharm,感觉很好用。

import cv2print cv2.__version__

输出结果3.1.0,说明Opencv的python版本,安装成功

0 0
原创粉丝点击