Ubuntu14.04 OpenCV編譯安裝與測試
1簡介
OpenCV,英文全稱Open Source Computer Vision Library。OpenCV是一個基於(開源)發行的跨平臺計算機視覺庫,可以執行在Linux、Windows和Mac OS作業系統上。它輕量級而且高效——由一系列 C 函式和少量 C++ 類構成,同時提供了Python、Ruby、MATLAB等語言的介面,實現了影象處理和計算機視覺方面的很多通用演算法。
官方主頁:http://opencv.org/
2安裝包
下載連結:http://opencv.org/downloads.html
安裝包:opencv-2.4.11.zip
請不要下載opencv2.3.1, 會報ffmpeg的錯誤。另外, 最新版的opencv3 和opencv2 架構不同。 如果大家用opencv2用的順手, 先不要升級opencv3了。
3安裝
安裝編譯opencv的依賴包
sudo apt-get install libgtk2.0-dev pkg-config
無法顯示攝像頭採集到的視訊,可能是因為沒有安裝libgtk2.0-dev和pkg-config
opencv中與影象顯示相關的函式是基於libgtk2.0-dev,pkg-config用於組織編譯後的opencv標頭檔案與庫檔案等資訊。
配置opencv,在這裡使用cmake-gui進行配置,使用cmake直接配置會報錯,後面會介紹。
OpenCV 2.2以後版本需要使用Cmake生成makefile檔案,因此需要先安裝cmake。
在終端輸入
$cmake-gui
點選"configure",選擇"Unix Makefiles","Use defaultnative compilers"。因為這裡只是編譯普通到PC版OpenCV。出現下面的介面,更改設定,把WITH-CUDA和BUILD_opencv_gpu選項去掉打鉤,然後依次點Configure和Generate按鈕生成Configure檔案。(如果設定好之後 generate是灰色的 在點一次configure)
再點選"Generate",即生成Makefile。
進入"/root/jiangyf/opencv/opencv-2.4.13/build"目錄,輸入
$make
$ sudo make install
到此,OpenCV編譯完成。
4環境變數
安裝成功後還需要設定opencv的環境變數
開啟檔案
sudo gedit /etc/profile ##個人比較喜歡把環境變數放在/etc/profile裡面,'~/.bashrc'一樣
在檔案最後新增
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
執行下列命令, 使環境變數立即生效
source /etc/profile
5lib庫路徑
開啟檔案
sudo gedit /etc/ld.so.conf.d/opencv.conf
一般是新建檔案,opencv的庫一般安裝在’/usr/local/lib’資料夾下,在檔案內新增
/usr/local/lib
執行下列命令使之立刻生效
sudo ldconfig
經過上面的流程,這樣就可以在eclipse裡或者qtcreator裡用opencv了。 不過要配置號相應的路徑和lib檔案。
6示例程式碼
對opencv的sample進行編譯並執行
cd /root/jiangyf/opencv/opencv-2.4.13/samples/c
./build_all.sh
./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 lena.jpg
7命令列編譯與執行程式碼
#include<iostream>
#include"opencv2/opencv.hpp"
usingnamespace std;
usingnamespace cv;
int main()
{
// Capturing multiple AVT cameras can bedone by simply initiating
// two VideoCaptures after eachother.
VideoCapture camera1(0);
Mat frame1;
for(;;){
camera1 >> frame1;
imshow("camera 1 frame",frame1);
int key = waitKey(10);
if(key == 27){
break;
}
}
return 0;
}
在終端輸入
//直接編譯連結 gcc `pkg-config --cflags opencv` -o camera camera.c `pkg-config --libs opencv`
或gcc camera.c -o camera `pkg-config --cflags --libs opencv` //先編譯再連結: gcc `pkg-config --cflags opencv` -c camera.c gcc `pkg-config --libs opencv` -o camera camera.o
執行:
./camera