1. 程式人生 > >OpenCV嵌入式影象處理(四)第一個OpenCV程式

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為影象處理加速。