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.下载
下载地址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包
下载地址http://download.csdn.net/download/chwshuang/100146062. 解压
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
原文链接:https://www.f2er.com/centos/375628.html1. 安装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.03. 解压
先解压,然后进入解压目录,创建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.jar
和libopencv_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