Ubuntu14.04 OpenCV編譯安裝

環境

系統:Ubuntu 14.04 x64

簡介

OpenCV,英文全稱Open Source Computer Vision Library。OpenCV是一個基於(開源)發行的跨平臺計算機視覺庫,可以運行在Linux、Windows和Mac OS操作系統上。它輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,同時提供了Python、Ruby、MATLAB等語言的接口,實現了圖像處理和計算機視覺方面的很多通用算法。
官方主頁:http://opencv.org/

安裝包

下載鏈接:http://opencv.org/downloads.html
安裝包:opencv-2.4.10.zip
請不要下載opencv2.3.1, 會報ffmpeg的錯誤。 另外, 最新版的opencv3 和opencv2 架構不同。 如果大家用opencv2用的順手, 先不要升級opencv3了。

安裝

安裝編譯opencv的依賴包

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg62-dev libtiff5 libtiff5-dev cmake cmake-gui libswscale-dev libjasper-dev

配置opencv,在這裏使用cmake-gui進行配置,使用cmake直接配置會報錯,後面會介紹。

cd opencv_dir 
mkdir build
cd build 
cmake-gui .. 

出現下面的界面,更改設置,把WITH-CUDA和BUILD_opencv_gpu選項去掉打鉤,然後依次點Configure和Generate按鈕生成Configure文件。
cmake
編譯安裝,這樣就安裝成功了。

make
sudo make install

環境變量

安裝成功後還需要設置opencv的環境變量
打開文件

sudo gedit /etc/profile ##個人比較喜歡把環境變量放在/etc/profile裏面,'~/.bashrc'一樣

在文件最後添加

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

執行下列命令, 使環境變量立即生效

source /etc/profile

lib庫路徑

打開文件

sudo gedit /etc/ld.so.conf.d/opencv.conf

一般是新建文件,opencv的庫一般安裝在’/usr/local/lib’文件夾下,在文件內添加

/usr/local/lib

執行下列命令使之立刻生效

sudo ldconfig

經過上面的流程,這樣就可以在eclipse裏或者qtcreator裏用opencv了。 不過要配置號相應的路徑和lib文件。

示例代碼

對opencv的sample進行編譯並運行

cd opencv_dir/samples/c
./build_all.sh
./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 lena.jpg 

運行結果
結果
lena

python使用opencv

如果想在python中使用opencv的話,這裏使用的是python虛擬環境(http://blog.csdn.net/honyniu/article/details/46382929),只需要把opencv編譯的cv2.so和原始的cv.py拷貝到python的site-packages路徑下面

cp opencv_dir/build/lib/cv2.so ENV/lib/python2.7/site-packages/
cp opencv_dir/modules/python/src2/cv.py ENV/lib/python2.7/site-packages/

簡單的改變圖片大小並保存的python代碼

import cv2 as cv
im = cv.imread(IMAGE_FILE)   #IMAGE_FILE圖片路徑
im = cv.resize(im, (500, 500))
cv.imwrite(IMAGE_FILE_CP, im)   #IMAGE_FILE_CP保存圖片路徑

出錯

就像上面說的如果使用cmake直接進行配置,執行make編譯會出現’nvcc fatal : Unsupported gpu architecture ‘compute_11’的錯誤,主要是cmake配置默認會把gpu和cuda選項選擇上,但好像在這裏的環境下opencv編譯gpu和cuda一直不成功(當然也有人成功,不知道爲什麼),所以使用cmake-gui命令選擇不安裝gpu和cuda。不安裝gpu和cuda對後面的工作也沒有影響。
出錯

找不到cv2.so

要編譯opencv_python,需要依賴numpy庫,必須保證在編譯opencv的時候配置文件識別到要使用的python的numpy庫,如下圖,可以出現BUILD_opencv_python和PYTHON_NUMPY_INCLUDER_DIR選項(這是自動識別出來的,你要系統默認的python庫中安裝了numpy就可以了),這樣就能正常的編譯出cv2.so。如果不能正確的找到numpy庫,需要先安裝好numpy,否則編譯不出來cv2.so。
cv2.so

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