英文原文地址:http://marcelojo.org/marcelojoeng/2014/09/installing-opencv-2-4-9-qt5-in-ubuntu.html
如果不熟悉OpenCV和QT的朋友,請參考下列鏈接:
http://opencv.org/
http://qt-project.org/
安裝 QT:
1
2
3
4
5
|
mkdir qt5
cd qt5
wget http://download.qt-project.org/official_releases/online_installers/qt-opensource-linux-x64-1.6.0-4-online.run
chmod +x ./qt-opensource-linux-x64-1.6.0-4-online.run
sudo ./qt-opensource-linux-x64-1.6.0-4-online.run
|
注:ubuntu14.04自帶Qt5 及 QtCreator的安裝:sudo apt-get install qtcreator
編譯OpenCV
注:ubuntu14.04自帶OpenCV的安裝,可通過命令查詢:apt-cache search opencv
首先,需要安裝一些需要的包:
1
2
3
|
sudo apt-get install build-essential
sudo apt-get install libgtk2.0-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
|
其次,下載OpenCV,保存到你選擇的目錄,如 opencv。
1
2
3
4
5
6
7
8
|
cd opencv
unzip ./opencv-2.4.9.zip
cd opencv-2.4.9
mkdir build
cd build
cmake -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_GTK_2_X=ON ..
//懶人辦法,直接用cmake-gui 效果一樣。不會用的請留言。
make
sudo make install
|
默認情況下,庫文件會安裝在 /usr/local/lib。如果想看cmake的選項,參看文件 CMakeLists.txt。
爲了能夠鏈接到 lib,需要在目錄/etc/ld.so.conf.d/ 下創建一個文件 opencv.conf:
<pre name="code" class="cpp">touch opencv.conf
gvim opencv.conf //使用任何你熟悉的文本編輯器
1
|
/usr/local/lib
|
然後在此目錄下執行:
1
|
sudo ldconfig
|
測試 OpenCV
如果想測試的話,請進入 ./build/bin 並執行測試程序如:
1
2
|
cd ./bin
cd ./open_test_photo
|
QT5 + OpenCV
首先打開 QTCreator,
1
|
/opt/Qt/Tools/QtCreator/bin/qtcreator
|
創建 Qt控制檯應用項目:
選擇Desktop平臺,直到嚮導結束。
現在需要告訴Qt 庫文件安裝在了哪裏。打開 .pro 文件並添加以下路徑:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
INCLUDEPATH += .
INCLUDEPATH += /usr/local/include
INCLUDEPATH += /usr/local/include/opencv
INCLUDEPATH += /usr/local/include/opencv2
INCLUDEPATH += /usr/local/include/opencv2/core
INCLUDEPATH += /usr/local/include/opencv2/highgui
INCLUDEPATH += /usr/local/include/opencv2/imgproc
INCLUDEPATH += /usr/local/include/opencv2/flann
INCLUDEPATH += /usr/local/include/opencv2/photo
INCLUDEPATH += /usr/local/include/opencv2/video
INCLUDEPATH += /usr/local/include/opencv2/features2d
INCLUDEPATH += /usr/local/include/opencv2/objdetect
INCLUDEPATH += /usr/local/include/opencv2/calib3d
INCLUDEPATH += /usr/local/include/opencv2/ml
INCLUDEPATH += /usr/local/include/opencv2/contrib
LIBS += `pkg-config opencv --cflags --libs`
|
測試程序:
在我們的例程“hello world”裏,顯示一幅圖像:當然是lena.jpg(注:OpenCV經典例圖)。你需要把要顯示的圖像(lena.jpg)放在程序相應的debug或release目錄裏。否則程序會找不到圖像而無法顯示。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#include <QCoreApplication>
#include <opencv2/highgui.hpp>
#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char *argv[])
{
Mat image;
image = imread("lena.jpg"); //
Read the file
if(!image.data)
{
cout << "nenhuma
imagem!";
}
else
{
cout << "imagem
carregada!";
}
cv::namedWindow("Teste
imagem");
cv::imshow("Teste
imagem", image);
cv::waitKey(0);
return 0;
}
|
編譯並運行,便會看到下列圖像: