天天看點

CentOS6 - Linux下安裝OpenCVCentOS6 - Linux下安裝OpenCV

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.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