OpenCV嵌入式影象處理(四)第一個OpenCV程式
在裝完了OpenCV和CUDA之後很自然的事情就是先跑個程式看看庫函式是否安裝完畢。對於在Windows下習慣用Visual Studio的同志們來說,可能很多人還不知道可以不用IDE程式設計(至少我當年轉Linux的時候就在想,用記事本寫程式,那工程檔案去哪了。。。),所有在這裡首先介紹如何使用跨平臺的IDE Qt 來編寫第一個OpenCV程式,這可以幫助大家快速上手在Linux上使用OpenCV。當然Qt也有它的缺點,在以後的文章中,再和大家討論如何用單純的.cpp, .h檔案和Makefile來構建程式。
1. 安裝Qt
Qt相對於Eclipse來說更接近於Windows使用者熟悉的介面,不需要配置太繁瑣的插架就可以進行編譯和除錯。安裝Qt有各種各樣的方法,由於筆者主要使用的是影象處理庫函式中的API,不需要使用太多Qt本身的API,所以只需要安裝Qt4即可。
1.1 Qt的命令安裝方法
首先安裝Qt工具箱
sudo apt-get install qt4-dev-tools #開發包
sudo apt-get install qtcreator #IDE
sudo apt-get install qt4-qtconfig #配置工具
其次可以選擇安裝說明文件和Demo,鑑於這兩個體積都比較大,國內Ubuntu源的速度又不好,不需要的小夥伴可以選擇跳過。
sudo apt-get install qt4-doc #開發幫助文件
sudo apt-get install qt4-demos #DEMO原始碼
1.2 應用商店安裝方法
相比於命令列安裝方法,應用商店的安裝更加直觀方便,這裡只需要安裝Qt Creator即可。
2. 配置工程檔案
2.1 新建工程
作為嵌入式平臺,我們不需要編寫類似於UI的使用者介面,所以這裡選擇Qt 控制檯專案。
2.2 配置qmake和編譯器
在這裡按照路徑選擇好編譯器、qmake以及偵錯程式。如果都選擇正確了,qt前面的紅色感嘆號會消失。
3. 執行OpenCV程式
3.1 在.pro(類似於工程檔案)的最後新增如下程式碼:
INCLUDEPATH += /usr/local/include \
/usr/local/include/opencv \
/usr/local/include /opencv2
LIBS += /usr/local/lib/libopencv_highgui.so \
/usr/local/lib/libopencv_core.so \
/usr/local/lib/libopencv_imgproc.so
INCLUDEPATH表示包含目錄,LIBS表示庫目錄。因為只做測試用,所以庫目錄只添加了highgui、core和imgproc三個模組,如需要其他功能,請按照實際情況新增模組。
3.2 將main.cpp檔案替換為以下程式碼:
#include <QCoreApplication>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
int main(int argc, char *argv[])
{
// QCoreApplication a(argc, argv);
namedWindow( "src", WINDOW_AUTOSIZE );
Mat src1 = imread( "lena.jpg" );//圖片儲存路徑
while(1)
{
imshow( "src", src1 );
char c = waitKey(30);
if( 27==c )
return 0;
}
// return a.exec();
}
3.3 點選左下角第一個綠色的按鈕執行
如果沒有問題的話,會顯示出你所指定的圖片。
萬事開頭難,執行成功第一個OpenCV程式之後,你就可以把之前在Windows上執行過的程式移植過來看看效果。他的程式設計方式和在Windows上 並沒有太大區別,只是效率會低很多。後續我將為大家呈現如何使用OpenCV的GPU模組以及NVIDIA的VisionWorks為影象處理加速。