自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解在 Qt 程序中使用OpenCV

移動開發(fā)
本文介紹的是詳解在 Qt 程序中使用OpenCV,OpenCV是一個基于BSD許可證授權(quán)(開源)發(fā)行的跨平臺計算機視覺庫,可以運行在Linux、Windows和Mac OS操作系統(tǒng)上。

Qt 程序中使用OpenCV是本文要介紹的內(nèi)容,OpenCV是一個基于BSD許可證授權(quán)(開源)發(fā)行的跨平臺計算機視覺庫,可以運行在Linux、Windows和Mac OS操作系統(tǒng)上。它輕量級而且高效——由一系列 C 函數(shù)和少量 C++ 類構(gòu)成,同時提供了Python、Ruby、MATLAB等語言的接口,實現(xiàn)了圖像處理和計算機視覺方面的很多通用算法。[

OpenCV安裝

關(guān)于OpenCV的安裝,參考:

http://opencv.willowgarage.com/wiki/InstallGuide

安裝文檔寫得無比詳細, 這里就不贅述了。 簡單來說就是安裝CMake,然后用cmake命令去配置和編譯。

最簡單的命令是 “cmake .”。 這一步應(yīng)該不算一帆風(fēng)順, 筆者遇到了gstreamer頭文件找不到的問題。 在OpenCV的代碼里搜索一番沒找到gstreamer的頭文件目錄在哪里配置, 而筆者對cmake又非常不熟悉, 只好用了個土方法, 在/usr/include下給本機的gstreamer目錄建了個link到OpenCV使用的gstreamer路徑。 OpenCV使用的gstreamer路徑在生成的Makefile里提到了, 是/usr/include/gstreamer-0.10, 這個路徑是從哪兒得到的這一點很神奇…誰要是知道的請不吝賜教啊。 筆者電腦中的路徑則為/usr/inlcude/gstreamer-0.10-a, 故建立鏈接如下:

  1. ln -s /usr/include/gstreamer-0.10-a /usr/include/gstreamer-0.10 

代碼例子

OpenCV里帶了很多的sample, 在samples目錄下, 其中一個引起了筆者的注意, 那就是samples/cpp/Qt_sample。 簡單看了看代碼, OpenCV里已經(jīng)實現(xiàn)了和Qt的集成, 里面用Qt的API寫了widget,可以直接把攝像頭取得的內(nèi)容顯示在Qt的widget里。

但這個例子工程似乎并沒有做好, 編譯過程實在是太曲折了, 到目前還沒找到方法編譯成功, 報的錯誤是undefined reference。 第一個遇到的問題是默認的編譯選項不會去編譯samples目錄, 為了尋找合適的編譯選項頗費了點腦筋(因為筆者對cmake基本上可以說是一竅不通的…汗)。 嘗試單獨編譯samples目錄, 失敗了, 報了個莫名其妙的cmake版本的問題。

估計是有些依賴的東西是需要頂層目錄里讀取的。 繼續(xù)查找相關(guān)的腳本和配置, 發(fā)現(xiàn)CMakeList.txt里提到了一個BUILD_EXAMPLES變量, 當(dāng)此變量為真值時會編譯samples目錄。 但筆者絞盡腦汁也沒想出來怎么才能從外部配置這個值, 是用環(huán)境變量? cmake參數(shù)? 都試了, 沒一個管用的。 找來找去發(fā)現(xiàn)了OpenCV的文檔里有個例子,說明了如何設(shè)置變量,是在cmake的命令行傳入 -D BUILD_EXAMPLES=ON這樣的方式。 如此一來build整個工程時就會自動為samples目錄創(chuàng)建Makefile。所以configure的命令變成:

  1. cmake -D BUILD_EXAMPLES=ON . 

生成的例子都在OPENCV_DIR/bin下,大家可以運行看看。(不包括Qt_sample這個例子)

在Qt中使用OpenCV

Qt程序要想用OpenCV的函數(shù)需要將opencv的頭文件和庫在工程pro文件里配置一下,添加INCLUDEPATH和LIBS,具體的方法參考:

Qt For Symbian 在pro文件中添加庫文件

詳解 QT 中.pro文件的寫法

http://www.opencv.org.cn/index.php/%E5%9C%A8Qt%E4%B8%AD%E4%BD%BF%E7%94%A8OpenCV%E5%BA%93

另外有一篇更實用更詳細的文章, 還提供幾個很好的例子, 是絕佳的參考。 大家有問題就仔細看這篇文章, 一般都能得到解答:

http://code.google.com/p/qt-opencv-multithreaded/wiki/Documentation

小結(jié):關(guān)于詳解在 Qt 程序中使用OpenCV的內(nèi)容介紹完了,希望本文對你有所幫助。更多相關(guān)內(nèi)容請參考編輯推薦。

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-06-28 10:03:37

Qt OpenCV qmake

2011-06-10 09:09:38

Qt Creator OpenCV

2011-06-15 10:08:01

Qt CVS

2012-04-23 10:30:38

Hadoop

2011-06-08 16:56:37

VS2008 Qt

2010-04-21 17:50:59

共享庫bada

2011-08-31 16:30:19

Lua多線程

2009-09-22 12:17:59

ibmdwLotus

2016-01-25 15:09:22

JavaScriptC程序

2011-07-01 18:35:17

QT 控制臺

2020-03-11 09:15:25

微信asyncawait

2009-06-19 13:45:53

Java應(yīng)用程序Jfreechart

2013-10-09 11:15:49

Ubuntu應(yīng)用程序

2011-05-27 08:48:13

Android HTML

2021-09-07 10:24:36

Vue應(yīng)用程序Web Workers

2011-09-01 15:26:51

QtMysql數(shù)據(jù)庫

2011-07-01 13:03:32

QT 線程 串口

2022-11-23 15:26:25

Ubuntu程序塢

2009-11-23 19:52:55

ibmdwFlex

2022-08-30 20:00:37

零信任Linkerd
點贊
收藏

51CTO技術(shù)棧公眾號