1. 程式人生 > >Qt呼叫VTK的詳細教程

Qt呼叫VTK的詳細教程

Qt呼叫VTK的詳細教程(PCL1.8.1 && VTK8.0)

1.VTK庫在三維視覺化顯示方面(醫學影象、地質、氣象等領域)具有廣泛的應用,呼叫該庫的傳統方式是通過VS,結合Cmake檔案進行編譯。

 2.Qt在介面設計、編譯方面具有良好的優勢,如果能使用Qt進行VTK庫的呼叫,這既利於發揮VTK的優勢進行演算法的研究,又利於發揮Qt的優勢進行工程的進展。

 3.然而,目前這方面的參考教程較少或不詳細(之所以這樣說是因為 目前網上的教程都是在VS中通過安裝外掛 qt-vs-addin 來實現Qt與VTK的結合的,這樣就失去了Qt Creator的優勢,因為筆者使用過網上這種方法,發現在VS下程式設計很不舒服),在使用Qt進行呼叫過程中會出現未知錯誤。因此,本文親自編譯VTK庫並使用Qt進行呼叫,一方面對自己以前的研究進行總結,另一方面給大家一些參考,避免花費大量時間。

4.本文在win10 64位系統下進行vtk的編譯和測試,已經安裝好Visual Studio 2013 編譯器,主要介紹兩大部分:在windows環境下編譯VTK庫Qt呼叫VTK詳細步驟。(教程會編譯的VTK庫和測試程式碼進行分享,如有需要可上網下載或直接與我聯絡,詳情見本文第五部分)

一、準備工作

本文需要的軟體和庫如下:

1.Qt下載地址:http://download.qt.io/archive/qt/5.5/5.5.1/ 下載檔案:  qt-opensource-windows-x86-msvc2013_64-5.5.1.exe

2.cmake 下載地址:

https://cmake.org/download/  下載檔案:cmake-3.9.3-win64-x64.msi

3.vtk 下載地址:https://www.vtk.org/download/  下載檔案:VTK-7.1.1.zip

二、編譯VTK(支援Qt)

對於Qt的安裝這裡不詳細說明,建議安裝過程庫檔案全選,這樣安裝目錄就會包含Qt原始碼,方便後續與VTK結合。

Cmake的安裝按照預設即可。

對於VTK的編譯部分,由於篇幅問題,請參考筆者另一篇部落格,win10環境下VTK7.1的編譯和Qt呼叫VTK的詳細教程二(VS2013編譯支援Qt的VTK庫)

三、配置環境變數

完成編譯後,在C:\Program Files目錄下會生成一個VTK資料夾,新增系統環境變數: C:\Program Files\VTK\bin

在VTK目錄下,建立一個文字檔案libsname.txt,裡面寫入   DIR D:\lib\lib /B >libsname.txt,該檔案就會寫下lib目錄下的所有檔名稱,如下所示,共計115個lib檔案。

vtkalglib-7.1.lib
vtkChartsCore-7.1.lib
vtkCommonColor-7.1.lib
vtkCommonComputationalGeometry-7.1.lib
vtkCommonCore-7.1.lib

.......

四、測試  

開啟Qt Creator,新建一個專案,依次選擇 “檔案(F)”,“Application”,“Qt Widgets Application”,"Choose",專案命名為:testQtVTK7,如圖1所示。

圖1  新建專案選項

 

新建的專案中,在testQtVTK7.pro中新增引用VTK環境的配置,如圖2,紅色方框部分是專案呼叫VTK所需要的環境(實際就是前文libsname.txt檔案中所有的lib名稱,本文第五部分分享的下載專案裡面會有完整的配置):

  圖2 testQtVTK7.pro檔案配置

 

經過上述步驟就可以在testQtVTK7專案中引用VTK庫並進行開發了。

在專案中新建一個類TestVTK,並在該類中新增一個test()方法,該方法實現測試vtk。

然後在主方法中呼叫test()方法,並進行編譯執行(release版本),會出現錯誤,提示Error: no override found for 'vtkPolyDataMapper'。需要在主方法前新增如下程式碼(圖3紅色方框部分)

 圖3  main新增程式碼

 

然後在編譯執行,就會執行如下介面,實現Qt成功呼叫VTK庫,恭喜一切搞定。

圖4 Qt呼叫vtk測試

 

五、關於本文庫和程式碼的說明

對於想要親自動手實踐的開發者可以參考上述第一、二、三、四步,然而對於沒有經驗的開發者,在編譯過程中可能會出現許多錯誤,會浪費大量的精力和時間,讓人很有挫敗感。

為了能儘快地投入到開發中,使用Qt快速呼叫VTK,本文將上述編譯好的VTK庫和testQtVTK7測試專案程式碼進行分享,請按照下述說明進行快速配置,就可以直接使用了。前提是請確保自己的系統是Windows 64系統,VS為2013版本,Qt為  qt-opensource-windows-x86-msvc2013_64-5.5.1。因為本文生成的VTK是64位Relese版本,使用vs2013編譯的,不滿足黃色部分條件可能會出現錯誤,無法呼叫,即使滿足作業系統、VS版本,使用不同的Qt版本也有可能出錯。(猜測是VTK與Qt版本不相容,畢竟這兩者更新的都挺頻繁,是否適用還看運氣和緣分)

 

為方便讀者獲取最新程式碼,本文將專案公佈在Github上,讀者可自行下載,網址為: https://github.com/tianhu9102/testQtVTK7

或者可以在百度雲盤上下載,如下圖5所示,連結:http://pan.baidu.com/s/1kVKJEnH   密碼:m85v

 

 圖5 VTK庫與測試程式碼分享頁面

 

下載完畢後,請將VTK.rar解壓到如下目錄(圖6),並配置環境變數: C:\Program Files\VTK\bin

 

圖6 VTK解壓目錄

 

使用Qt Creator開啟測試專案,在選項中取消Debug選項(圖7,本文編譯的vtk為release版本,如選擇debug將會出錯),點選Configure Project,最終就會成功執行專案。

 

 圖7 Qt編譯選項

 

 

 

 

 

 

 

分類: VTK開發