- 首先Qt的專案格式:
- 一般來說有五個檔案
- Program Driver -
- ItkVtkQtProjectApp.cxx
- 程式開始執行位置並初始化一個GUI
- Qt Gui file -
- ItkVtkQtProjectGui.ui
- 這個檔案是用Qt Designer設計來的GUI,當然也可以用hard-coding方式完成,使用的程式語言是XML
- Gui Functionality spec & implementation -
- ItkVtkQtProjectGui.cxx and ItkVtkQtProjectGui.h
- 這兩個負責實作Gui的functionality
- 可以用hard-coding的方式一邊做gui介面,一邊做functionality
- Qt Gui resources -
- ItkVtkQtProjectGui.qrc
- 專門存放gui可能用到的資源位置,例如icon
- 專案的檔案都設置好以後進行編譯跟執行時,Qt的meta-object compiler moc會將qt相關的程式部分產生對應的檔案在Generated資料夾下,主要有兩個
- moc_ItkVtkQtProjectGui.cxx - 根據ItkVtkQtProjectGui.h產生的Meta object code,基本上可以不用動這個檔案
- ui_ItkVtkQtProjectGui.h - 由ItkVtkQtProjectGui.ui產生的介面,含有C++ code,其中出現的Qt物件會對應Gui的元件以及Gui的Layout
- 當有需要時,可以來這裡改Gui的設定,除此之外,這兩個不需要特別去動
- 建立及執行專案
- 環境設定 -
- Window 7 64bit 企業版 + Visual Studio 2010 professional
- InsightToolkit-4.2.1 + VTK5.10.1 + Qt4.8.4 + OpenCV-2.4.3
- Cautious:以上使用到的Library必須先正確的在機器上編譯好!
- Download Project
- Step 1:
- 利用Cmake建立專案,過程中如果遇到找不到Library出現Error,就點一下找不到的那個LIBRARY的欄位,接著點右邊的按鈕,明確地給他路徑,然後再點一次Generate即可。
- 必須直到Cmake皆找到所有Library位置即可,最終結果可能如:
- Note: 過程中,Cmake可能找到OpenCV的路徑,但是是相對路徑,此時,仍然點OpenCV的欄位,明確地給他路徑,否則之後專案裡面可能會沒有include到OpenCV的Library;如果用不到OpenCV,也可以在CMakeLists.txt中把OpenCV相關的都刪掉,則可以忽略這個Note
- Step 2:
- 接著打開專案,在ItkVtkQtProject上點右鍵,將ItkVtkQtProject設成起始專案
- 改成Release Mode( 非常重要! )
- Note 1: 編譯過程中compiler可能找不到 「itkImageToVTKImageFilter.h」
- #include <itkImageToVTKImageFilter.h>,必須在專案屬性頁手動加入這個include檔的原始位置
- 路徑位置大概在C:\itk\itk-4.2.1\InsightToolkit-4.2.1\Modules\Bridge\VtkGlue\include
- Note 2: 在執行第一次編譯以前,前面提到的moc_xxx.h 和 ui_xxx.h兩個檔案,會先在實作的code內出現,不過compiler會找不到這些檔案,但是不用擔心,只要執行第一次編譯後,這兩個檔案自然就會出現,程式也可以正常執行
- 執行結果
- 主要概念
- ITK image 和 VTK image利用itkImageToVTKImageFilter相互連結
- VTK 和 Qt 利用QVTKWidget連結
- VTK 和 Qt的差別可以看User Guide或是其他Reference得知,而其中最主要就是利用Qt中signal/slot Connection的概念
2013年1月28日 星期一
ITK + VTK + QT + OpenCV VS2010 Project Setup
訂閱:
文章 (Atom)