CentOS6 - Linux下安装OpenCV

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chwshuang/article/details/78208273

CentOS6 - Linux下安装OpenCV

项目需要做人脸识别,通过人脸进行自动切图,开源项目就OpenCV比较全的文档,且有Java的实现方案,所以就使用OpenCV进行开发。不过OpenCV进行人脸识别需要安装很多库文件和依赖,过程繁琐且复杂,为了避免再次入坑,下面就把这个过程记录下来,以备不时之需。

1. 安装依赖


Java

1.下载
下载地址可以参考我的这篇文章jdk1.7 64位官方下载地址

2.安装

rpm -ivh jdk-7u80-linux-x64.rpm

3.环境变量配置

vim /etc/profile
在文件后加入
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH

4.刷新环境变量

source /etc/profile


Ant

1.下载
CSDN下载地址
官网下载地址 http://ant.apache.org/

2.解压

zip apache-ant-1.9.9-bin.zip
cd apache-ant-1.9.9-bin

3.改名

mv apache-ant-1.9.9 ant

4.环境变量配置

vim /etc/profile
在文件后加入
export ANT_HOME=/usr/local/ant
export PATH=$ANT_HOME/bin:$PATH

5.刷新环境变量

source /etc/profile


ImageMagick

1. 更新阿里云源(可选)
如果你通过yum的方式安装ImageMagick提示找不到包或者下载比较慢,建议将服务器的源改为阿里云的源
如果需要更新阿里云源,可以参考我的另外一篇文章CentOS安装阿里云的源

2. yum安装

yum -y install ImageMagick ImageMagick-devel

3. 验证

convert -version


GraphicsMagick

1. 下载GraphicsMagick包
CSDN下载地址

官网地址 http://www.graphicsmagick.org/index.html

2. 解压

xz -d GraphicsMagick-1.3.26.tar.xz
tar -xf GraphicsMagick-1.3.26.tar
cd GraphicsMagick-1.3.26

3. 安装依赖

yum install -y gcc gcc-c++ make cmake autoconf automake libpng-devel libjpeg-devel libtiff-devel jasper-devel freetype-devel libtool-ltdl ibtool-ltdl-devel* libtool-ltdl.x86_64 libtool-ltdl-devel.x86_64

4. 配置

./configure '--prefix=/usr/local/GraphicsMagick-1.3.26' '--exec-prefix=/usr/local/GraphicsMagick-1.3.26' '--bindir=/usr/local/GraphicsMagick-1.3.26/bin' '--sbindir=/usr/local/GraphicsMagick-1.3.26/sbin' '--sysconfdir=/usr/local/GraphicsMagick-1.3.26/etc' '--datadir=/usr/local/GraphicsMagick-1.3.26/share' '--includedir=/usr/local/GraphicsMagick-1.3.26/include' '--libdir=/usr/local/GraphicsMagick-1.3.26/lib' '--libexecdir=/usr/local/GraphicsMagick-1.3.26/libexec' '--localstatedir=/usr/local/GraphicsMagick-1.3.26/var' '--sharedstatedir=/usr/local/GraphicsMagick-1.3.26/share/com' '--mandir=/usr/local/GraphicsMagick-1.3.26/share/man' '--infodir=/usr/local/GraphicsMagick-1.3.26/share/info' '--enable-libtool-verbose' '--with-included-ltdl' '--enable-shared' '--disable-static' '--with-modules' '--with-frozenpaths' '--without-perl' '--without-magick-plus-plus' '--with-quantum-depth=8' --enable-symbol-prefix

5. 编译&安装

make && make install

6. 配置环境变量

vim /etc/profile

在文件尾部加入

export GMAGICK_HOME="/usr/local/GraphicsMagick-1.3.26"
export PATH="$GMAGICK_HOME/bin:$PATH"
LD_LIBRARY_PATH=$GMAGICK_HOME/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
export IM4JAVA_TOOLPATH=/usr/local/GraphicsMagick-1.3.26/bin

刷新环境变量

source /etc/profile

7. 验证

gm
或者
gm convert -list formats

安装OpenCV

1. 安装OpenCV依赖库

yum install -y build-essential gcc gcc-c++ cmake git pkgconfig gtk+-devel gtk2-devel python python-pip python-devel python-numpy gimp-devel gimp-devel-tools gimp-help-browser libjpeg-devel libtiff-devel libpng-devel gstreamer-devel gstreamer-plugins-base-devel libv4l ffmpeg-devel mencoder flvtool2 libavc1394-devel libraw1394-devel libdc1394-devel jasper-devel jasper-utils zlib-devel unzip vim

2. 下载
可以到官网下载 选择对应版本,我这里是3.1.0

3. 解压
先解压,然后进入解压目录,创建 build 目录,进入build 目录,准备预编译

unzip opencv-3.1.0.zip
cd opencv-3.1.0
mkdir build && cd build/

4. 预编译
通过cmake命令预先编译一次,编译完成后查看输出结果, 在To be built里包含java这一项就表示预编译成功

cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DCMAKE_INSTALL_PREFIX=/usr/local ..

预编译过程中,会卡在下载ippicv_linux_20151201.tgz 这个文件上,因为这个文件有36.5M,而且是国外的网站,所以会非常慢,这里有一个解决方案,就是先终止预编译,然后手动下载后,放入opencv-3.1.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/ 目录, 然后去CSDN下载地址 下载, 也可以去官网获取下载地址,然后用迅雷下。 注意:linux-808b791a6eac9ed78d32a7666804320e目录名称是根据你的机器随机变化的,每个人的服务器上 linux- 后面可能不一样.

5. 编译
cmake完成后,在build目录直接输入make进行编译,如果服务器CPU核数比较多,可以在make后加入-j8 使用8个线程同时进行编译,加快编译速度。

make -j2

编译过程可能出现异常,提示:

/usr/include/jasper/jas_math.h:117:22: error: ‘SIZE_MAX’ was not declared in this scope

出现这个异常,不要慌,可以通过修改/usr/include/jasper/jas_math.h 文件源码解决。
/usr/include/jasper/jas_math.h 的头部#include 的下面添加:

#if ! defined SIZE_MAX
#define SIZE_MAX (4294967295U)
#endif

然后重新编译就可以了。如果不行,请删除build目录下的内容,重新预编译、编译就应该没问题了

6. 安装
编译完成,就可以进行安装,安装过程是生成opencv对应的库文件,我这里是java项目需要用到,所以也会顺便生成java相关的库文件

make install

命令执行完成,会在结果中看到/usr/local/share/OpenCV/java/目录生成了两个java相关的依赖库文件 opencv-310.jarlibopencv_java310.so , 当然,每个人的环境不同,可能目录也不同,具体看日志输出就行了。

/usr/local#ll /usr/local/share/OpenCV/java/
total 46416
-rw-r--r-- 1 root root 312685 Oct 11 17:49 opencv-310.jar
-rwxr-xr-x 1 root root 47213974 Oct 11 17:49 libopencv_java310.so

猜你喜欢

转载自blog.csdn.net/chwshuang/article/details/78208273