在Qt调用OpenCV库编写GUI程序
寫在前面
OpenCV本身自帶的HighGUI庫就可以完成一部分GUI設計編寫工作,無奈其中控件實在太少,除了按鈕就是滾動條,OpenCV中文站上曾經給出了OpenCV和MFC的搭配調用,但是OpenCV作為跨平臺的開源庫,如果僅放到MS的PC平臺上顯然大大限制了其發揮;同時,OpenCV給出了很多人工智能,機器學習的解決方案,其在嵌入式設備中的運用遠多于PC,因而跨平臺的GUI庫無疑十分必要,Qt作為LinuxGUI解決方案的一種,還大量應用在包括Linux Mac Windows等平臺上,在嵌入式設備中Qt提供了自身的??X11方案,針對嵌入式設備低功耗,小屏幕,低分辨率的特點特別做出優化,因而Qt和OpenCV的結合無疑是激動人心的。
方法一:VS2008版
首先可以用在Visual Studio中集成使用 Qt Opensource 版本,具體方法如下
以前,Qt windows 只有商業版才支持 Visual Studio, Opensource 版只能使用 MinGW, 無論開發調試都很麻煩。
雖說最近 Qt 出了一款 QtCreator 用來專門支持 Opensource 開發,而且配備了強大的 debug helper 來支持 MinGW(Linux/Unix/Mac 下直接支持 GCC, GDB),但是在windows上開發,最爽的還是 Microsoft 出品的原生編譯器和調試器, 相信你也不喜歡看到 MinGW 編譯出來的 debug 版本 QtCored4.dll 有幾十兆吧。
經過前幾天研究發現, Opensource版本也可以直接集成至 VC 中,我們也不用再破解人家商業版本了, 為正版做貢獻!
如果你不想使用 M$ 的 IDE, 那有更好的消息是,QtCreator 也支持 Visual studio 的nmake 和 windows debug tool。
先說 Visual Studio
本人使用 Visual Studio 2008 professional 版本、Qt Visual Studio Integration 和?Qt 4.6 Preview 。 另外, 在 Visual Studio 2005?Enterprise 版本、 Qt Visual Studio Add-in 和 Qt 4.5.3 Opensource 上也試過了。
Qt Visual Studio Integration? 和 Qt Visual Studio Add-in? 有何區別??前者是商業版,后者是免費版本。前者更強大,可以直接在 VC 中編輯 .UI 文件,編輯 Slots/Signal 實時刷新 moc 文件等等,而 后者只是些基本功能,如工程轉換,編譯器整合調用等。
1. 下載 Qt 4.6 Preview 版本
當然,你也可以使用 4.5x 版本, 要下載源代碼的,或者 SDK 中解出源代碼
地址:http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.6.0-tp1.zip
2. 下載 Qt Visual Studio Add-in
當然,你有 Qt Visual Studio Integration? 更好了, 或者 google 一個破解版
地址:http://download.qt.nokia.com/vsaddin/qt-vs-addin-1.0.2.exe
3. 使用 VC 編譯 Qt
a. 將Qt源碼放置到硬盤某個目錄,即要安裝的目錄,如 d:\Qt\4.6-tp1, 不要有空格
b. 配置 Qt
windows 開始 ——> 所有程序 ——> Mircrosoft Visual Studio 2008 ——> Visual Studio Tools ——> Visual Studio 2008 Command Prompt 進入到 命令行下, 然后切換至Qt目錄, 如:d:\Qt\4.6-tp1,敲入命令:
D:\Qt\qt-4.6.0-tp1>configure -platform win32-msvc2008
如果你 2005,那就win32-msvc2005了, 2003我沒試過。
接著按照提示,選擇opensource 版本,同意 GPL/LGPL/GPLV3 等協議就可以了, 接著開始編譯 qmake 工具,輸出 VC 工程 等等;?等完成后,敲入 nmake 編譯所有工程, 或者 nmake release 編譯 release 版本, nmake debug 編譯 debug 版本等,隨便你,這個 程很漫長,有點耐心。 如果擔心期間報錯不好搞, 可以直接在目錄用 VC 下打開 projects.sln 解決方案文件自己編譯,效果一樣。推薦使用 VC 自己編譯,我也是這么搞的,因為編譯報錯還修改了個文件。
4. 設置系統環境變量
增加 QTDIR 路徑為 d:\Qt\4.6-tp1, 即include,bin 的上一級, 把 d:\Qt\4.6-tp1\bin 和 d:\Qt\4.6-tp1\lib 加入到 PATH 中。
5. 安裝插件。
安裝相關插件Qt? Visual Studio Add-in 或者 Qt Visual Studio Integration。
6. 創建 Qt 工程,編譯。
啟動 VC,基本上一切就緒了,可以創建 Qt 工程,編譯。 如果報錯,請檢查配置:在VC菜單中選擇 Tools 選擇 Options,然后點擊Qt——> builds, 查看目錄是否正切,如果沒有,手動添加, 如下圖:
然后就開始使用了!
這個雖然耗時耗力,但是一勞永逸,至少不必每次都運行qmake之類的東東了,在沒有qt creator的時候是必備的。
然后用VS2008建立Qt工程之后,右鍵左邊的工程文件(不是解決方案),最后一項是Properties,其中找到Linker 的input中加入OpenCV所需要的lib,如cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib等需要的庫。當然,這個VS要提前設置到C++的include目錄和lib目錄等,按照OpenCV中文站網站上說的的方法即可。
這種方法的缺點是VS2008太消耗資源了,但是至少可以適應OpenCV目錄不好用的問題,用類似方法也可以用Cximage。尤其是Cximage還要設置各種其它選項,只有VS下設置才比較方便。
方法二:QT Creator
直接用OpenCV中文站里的方法
不過可以直接在creator下修改pro,也不用qmake了
占用資源比vs2008小多了,但是設置不是很方便。尤其是OpenCV如果目錄有空格的話,只能重裝或者用Xplorer2的硬盤映射功能了!
我目前的設置是
<code>INCLUDEPATH += E:\OpenCV\cv\include \ E:\OpenCV\cvaux\include \ E:\OpenCV\cxcore\include \ E:\OpenCV\ml\include \ E:\OpenCV\otherlibs\highgui \ E:\OpenCV\otherlibs\cvcam\include \LIBS += E:\OpenCV\lib\cv.lib \ E:\OpenCV\lib\cvaux.lib \ E:\OpenCV\lib\cxcore.lib \ E:\OpenCV\lib\highgui.lib \ E:\OpenCV\lib\ml.lib \</code>給出一個實例,便于上手,這個東西掛在Google Code上,不過作者很久米有更新XD,不過看看模板就可以拋磚引玉
from:?http://logicmd.net/2010/04/gui-programming-in-qt-using-opencv-lib/
總結
以上是生活随笔為你收集整理的在Qt调用OpenCV库编写GUI程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 那些计算机界的伟大女性
- 下一篇: 练字究竟练的是什么?