OpenCV在ubuntu上的安裝

OpenCV的全稱是Open Source Computer Vision Library,是一個跨平臺的計算機視覺庫。OpenCV是由英特爾公司發起並參與開發,以BSD許可證授權發行,可以在商業和研究領域中免費使用。OpenCV可用於開發實時的圖像處理、計算機視覺以及模式識別程序。

目前我們比較感興趣的是它在人臉識別上的應用。

在ubuntu上的安裝:

首先確保電腦上已經安裝了GTK+ 2.x和Cmake。

sudo apt-get install libgtk2.0-dev pkg-config  cmake

接下來從網上下載OpenCV的源代碼。我下載的是OpenCV-2.4.4a.tar.bz2。

解壓進入文件夾。

tar -jxvf OpenCV-2.4.4a.tar.bz2  

cd OpenCV-2.4.4

建立目錄release,我們的安裝將在這個目錄下進行。

mkdir release  

cd release  

進入目錄後,執行下面命令(注意,這是一條完整的命令,包括最後的..)進行配置,需要注意的是安裝目錄這一項。

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/home/OpenCV-2.4.4 -D BUILD_PYTHON_SUPPORT=ON ..

執行完畢後,release目錄下出現Makefile等文件。

接下來make編譯,然後安裝

make
sudo make install

安裝完畢後

cd /home/OpenCV-2.4.4
leon@leon-Founder-PC:/home/OpenCV-2.4.4$ ls
bin  include  lib  share

至此安裝完成,接下來修改環境變量。

sudo gedit /etc/bash.bashrc

在文件中添加下面兩項:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/OpenCV-2.4.4/lib/
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/OpenCV-2.4.4/lib/pkgconfig

測試:

在OpenCV的源碼包裏有Samples文件夾,裏面有各個平臺的例程。

leon@leon-Founder-PC:~/cam/opencv-2.4.4/samples$ ls

android  c  CMakeLists.txt  cpp  gpu  java  MacOSX  ocl  python  python2

我們使用最熟悉的C。進入該文件夾,下面有非常多的文件,我們編譯例程只需要一個文件:build_all.sh。

leon@leon-Founder-PC:~/cam/opencv-2.4.4/samples/c$ ls
...
build_all.sh
leon@leon-Founder-PC:~/cam/opencv-2.4.4/samples/c$ ./build_all.sh

等待編譯完成後,我們就可以測試了,選擇現有的人臉檢測例程。

leon@leon-Founder-PC:~/cam/samples/c$ ./facedetect --cascade="/home/OpenCV-2.4.4/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.9 ~/Pictures/1.png

程序運行,這個程序的解釋還是很清楚的:

This program demonstrates the cascade recognizer. Now you can use Haar or LBP features.This classifier can recognize many kinds of rigid objects, once the appropriate classifier is trained.
It's most known use is for faces.
Usage:
./facedetect [--cascade=<cascade_path> this is the primary trained classifier such as frontal face]
   [--nested-cascade[=nested_cascade_path this an optional secondary classifier such as eyes]]
   [--scale=<image scale greater or equal to 1, try 1.3 for example>]
   [--try-flip]
   [filename|camera_index]
see facedetect.cmd for one call:
./facedetect --cascade="../../data/haarcascades/haarcascade_frontalface_alt.xml" --nested-cascade="../../data/haarcascades/haarcascade_eye.xml" --scale=1.3
During execution:
Hit any key to quit.
Using OpenCV version 2.4.4
Processing 1 --cascade=/home/OpenCV-2.4.4/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml
  from which we have cascadeName= /home/OpenCV-2.4.4/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml
Processing 2 --scale=1.9
 from which we read scale = 1.9
Processing 3 /home/leon/Pictures/1.jpg
In image read
detection time = 198.629 ms

程序執行效果:

在接下來,對其他幾張照片測試,發現這個例程只能檢測到清晰的正面人臉,而且會出現漏檢,誤檢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章