国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于VTK的三維可視化軟件設計*

2016-07-23 08:27李世虎王明泉陳培興
山西電子技術(shù) 2016年2期
關(guān)鍵詞:三維可視化

李世虎,王明泉,陳培興

(1.中北大學動態(tài)測試技術(shù)重點實驗室,山西 太原 030051;2.中北大學信息與通信工程學院,山西 太原 030051)

?

基于VTK的三維可視化軟件設計*

李世虎1,2,王明泉1,2,陳培興1,2

(1.中北大學動態(tài)測試技術(shù)重點實驗室,山西 太原 030051;2.中北大學信息與通信工程學院,山西 太原 030051)

摘要:三維可視化有利于直觀觀察物體內(nèi)部細節(jié),是當前研究的熱點問題。論文對VTK及三維可視化算法進行分析介紹,以VTK提供的光線合成可視化算法作為接口,結(jié)合MFC設計實現(xiàn)了三維可視化軟件設計與開發(fā)。

關(guān)鍵詞:VTK;三維可視化;MFC

工業(yè)CT重建在無損探傷檢測領(lǐng)域有重要作用,而三維可視化能夠直觀重現(xiàn)物體復雜的內(nèi)部結(jié)構(gòu),作為其中的關(guān)鍵環(huán)節(jié)有著十分重要的地位[1]。本文對比體繪制與面繪制方法進行比較,對VTK成像流程做了分析,再對重建數(shù)據(jù)做預處理,最后選用體繪制方法,使用VTK結(jié)合MFC實現(xiàn)可視化軟件開發(fā),為物體缺陷檢測提供了直觀依據(jù)[2]。

1三維可視化方法與VTK

1.1三維可視化方法

三維可視化方法主要包括體繪制和面繪制[3]。面繪制是以移動立方體算法(Marching Cubes算法)為代表的繪制方法。它主要是通過提取圖像中等值面構(gòu)造三角面片等來刻畫物體輪廓信息進行三維繪制,適用于表面特征明顯的物體。面繪制中,只處理體數(shù)據(jù)場中的部分數(shù)據(jù),因此運算量小、速度快。但也造成了圖像信息的丟失, 可視化數(shù)據(jù)不完整,無法展示出物體的內(nèi)部具體特征信息。

體繪制是以光線透射算法(Ray Casting算法)為代表的繪制方法[4]。它是對體數(shù)據(jù)場中每一個體素進行處理,運算量較大,繪制速度也相對面繪制慢。體繪制得到的可視化結(jié)果能夠顯示物體內(nèi)部構(gòu)造信息和細節(jié),繪制結(jié)果也相對更加精確。這里因為需要物體內(nèi)部細節(jié),選擇體繪制算法作為可視化方法。

1.2VTK

VTK(Visualization Toolkit)是由美國 Kitware公司使用C++開發(fā)的一套集3D圖形學和可視化等于一體的C++通用可視化類庫。它的代碼是源碼的,可在C++、Tcl/Tk、Jave、Pyhon語言環(huán)境下配合使用[5]。VTK主要包括兩種對象模型:圖形模型對象和可視化模型對象[6]。圖形模型主要是用圖形描述幾何體構(gòu)成的場景;而可視化模型主要把幾何數(shù)據(jù)轉(zhuǎn)換成圖形數(shù)據(jù)及構(gòu)建幾何體。VTK采用流水線機制,并且支持數(shù)據(jù)并行處理[7,8]。如圖1所示,數(shù)據(jù)由數(shù)據(jù)源輸入,經(jīng)過濾波處理(這里可以使多次濾波處理)后,經(jīng)過場景渲染到窗口中:

圖1 VTK管道流水線

2圖像預處理

這里選取CT掃描固體燃料電磁后,經(jīng)過FDK重建得到的0~730共731幅切片數(shù)據(jù)作為可視化數(shù)據(jù)源進行可視化,該數(shù)據(jù)由國家重大儀器專項提供。這里每幅切片大小為8 033 KB(大小為:1 434*1 434,類型為:float型),總共為5.59 GB的數(shù)據(jù)量。對于一個32位的系統(tǒng)而言,Windows對于每個進程提供4 GB虛擬空間,除去代碼段等,可用空間不足2 GB,顯然,直接加載5.59 GB數(shù)據(jù)進行可視化是不可取的。對于這個問題,眾多學者為此進行了研究,一種有效的方法是八叉樹算法。

事實上,多次對選取單層重建切片研究發(fā)現(xiàn),圖片中有大量無效信息,如圖2所示。圖中,除去燃料電池外為無用信息。這里對所有切片進行旋轉(zhuǎn)變換截取,剔除圖像中無用信息,所得如圖3所示。

圖2 第358副圖像     圖3 數(shù)據(jù)截取后部分圖像

經(jīng)過以上數(shù)據(jù)截取后,得到圖像總大小為:816 MB(單副切片大小為:425*690,數(shù)據(jù)類型為:float型),這樣以來,數(shù)據(jù)量得到了有效壓縮。

對三維數(shù)據(jù)的可視化,數(shù)據(jù)量的減小將能帶來更快的可視化速度,甚至達到實時的要求。經(jīng)過研究發(fā)現(xiàn),國內(nèi)LED液晶灰度多為8位,國際上為10位,12位已經(jīng)可以做充足的數(shù)據(jù)變化[9]。顯然,32位float型攜帶的許多信息超出液晶屏所能表達的范圍,這里對其進行多次嘗試后,發(fā)現(xiàn)即使將浮點型數(shù)據(jù)映射到unsigned char的字符型數(shù)據(jù),在顯示器上依然難以分辨,圖4,圖5為選取的兩幅float型壓縮到unsigned char型數(shù)據(jù)前后對比。

圖4 浮點型數(shù)據(jù)圖像

圖5 字浮型數(shù)據(jù)圖像    圖6 最終壓縮圖像

最終得到如圖6所示壓縮圖像,總圖像大小為204 MB,這極大地壓縮了可視化源數(shù)據(jù),當然受限于實驗中所用的LED屏,若選用更高級別灰度等級,可以將圖像映射到unsigned short型,這樣一來,數(shù)據(jù)量為408 MB,對于使用VTK來可視化,仍然滿足要求。

3軟件設計

這里使用VTK與MFC結(jié)合基于單文檔多視圖進行三維可視化軟件設計。本軟件共設計四個窗口,主窗口進行三維可視化及任意角度切分,其余三個窗口可以聯(lián)動顯示物體沿著X、Y、Z軸方向上任意層切片信息及灰度值,也可以動態(tài)調(diào)整窗寬窗位。這里選用visual studio 2010進行作為開發(fā)工具,參數(shù)輸入均在新增功能Ribbon控件中進行。設計中,VTK提供了vtkSmartPointer與vtkMFCWindow輔助進行內(nèi)存管理。

幾個關(guān)鍵步驟為:

1) 在MainFrm.cpp中,重寫CMainFrame::OnCreateClient()函數(shù),實現(xiàn)多視圖切分;

2) 在視圖類中,需要重寫OnDraw()函數(shù)、OnSize()函數(shù)、OnCreate()函數(shù)、OnInitialUpdate()函數(shù)等函數(shù)。

3) 主視圖類中使用SetVolumeRayCastFunction(compositeFunction)來實現(xiàn)光線透射算法中合成算法設置。

4) 主視圖類中使用vtkBoxWidget類進行任意角度包圍盒切分。

5) 多視圖間相互數(shù)據(jù)傳遞及視圖更新通過全局變量及調(diào)用Invalidate()函數(shù)進行。

6) 對于各切片視圖,這里使用vtkInteractorStyleUser類進行交互,可以較好地定位相機位置。

7) 在各切片視圖中,需調(diào)用GetActiveCamera()函數(shù)獲取當前視圖窗口相機,并調(diào)用相機相應的SetViewUp()、Azimuth()、SetViewUp()函數(shù)來調(diào)整相機到合適的視角。

結(jié)合以上幾個關(guān)鍵步驟,按照VTK提供的管道流水線,結(jié)合單文檔設計進行軟件編寫,軟件設計結(jié)果如圖7,8,9所示。

圖7 軟件讀取燃料電池截圖

圖8 對燃料電池進行刨切并查看任意層切片

圖9 對固體火箭發(fā)動機模型的三維可視化

4總結(jié)

論文使用VTK與MFC結(jié)合,實現(xiàn)了固體燃料電池三維數(shù)據(jù)的可視化,并可以進行任意角度刨切等功能;另外,軟件同樣在固體火箭發(fā)動機重建數(shù)據(jù)的三維可視化上,也同樣適用,軟件具有一定的應用價值。另外,軟件統(tǒng)一選用了合成光線透射算法,功能上稍顯不足,需要進一步進行完善。

參考文獻

[1]呂金坤.基于VTK的工業(yè)圖像三維可視化技術(shù)研究[D].太原:中北大學,2013.

[2]William J Schroeder.The VTK User’s Guide[M].Kitware.USA,2001.

[3]袁清偉.CT序列圖像三維可視化技術(shù)的研究與實現(xiàn)[D].濟南:山東大學,2009:45-47.

[4]Levoy M.Display of Surfaces From Volume Data[J].IEEE Computer Graphics and Applications,1988,8(3):29- 37.

[5]Kitware Inc.Visualizing with VTK a Tutorial[J].IEEE CG &A,2000,9:20-27.

[6]William Schroeder,Kenneth Martin,Bill Lorensen.The VisualizationToolkit-An Objectoriented to 3D Grapics(Third Edition)[Z].KitwareInc,2002.

[7]洪濤,潘志方,林立本,等.VTK醫(yī)學圖像三維重建應用及實現(xiàn)[J].計算機系統(tǒng)應用,2011,20(4):127-131.

[8]Frédéric Magoulès,Roman Putanowicz.Visualization of Large Data Sets by Mixing Tcl and C++ Interfaces to the VTK Library[J].Computers and Structures,2007,85:536-552.

[9]黃河鸛雀樓.LED顯示屏灰度等級[EB/OL].http://www.360doc.com/content/10/1007/01/735811_58962384.shtml,2010-10-17/2016-01-07.

收稿日期:2016-01-19

基金項目:國家自然基金資助項目(61171177);國家重大儀器設備開發(fā)專項(2013YQ240803)

作者簡介:李世虎(1988- ),男,安徽阜陽人,碩士研究生,主要研究方向為三維可視化、GPU重建加速等。

文章編號:1674- 4578(2016)02- 0064- 03

中圖分類號:TP391

文獻標識碼:A

The Design of 3D Visualization Software Based on VTK

Li Shihu1,2, Wang Mingquan1,2, Chen peixing1,2

(1.KeyLaboratoriesoftheDynamicTestingTechnology,NorthUniversityofChina,TaiyuanShanxi030051,China;2.SchoolofInformationandCommunicationEngineering,NorthUniversityofChina,TaiyuanShanxi030051,China)

Abstract:3D visualization is the current research hotspot which can be conducive to intuitively find internal details of objects. This paper analyzes and introduces the VTK and 3D visualization algorithm, gives the ray tracing composite algorithm provided by VTK as an interface, then realizes the design and development of 3D visualization software combined with MFC.

Key words:VTK; 3D visualization; MFC

猜你喜歡
三維可視化
環(huán)太行山著名旅游景點多媒體導航系統(tǒng)研究與建立①
機器人人機界面的三維可視化設計
鐵路線路設計與技術(shù)發(fā)展探討
基于Cordova和Cesium的移動3D WebGIS系統(tǒng)實現(xiàn)
基于三維可視化技術(shù)的云岡石窟文化傳播策略研究與實現(xiàn)
全球海量空間數(shù)據(jù)綜合管理與服務系統(tǒng)2013年度技術(shù)總結(jié)報告
基于ArcScene平臺的電子沙盤制作
3D機房運維可視化系統(tǒng)的設計與實現(xiàn)
基于Skyline二三維一體可視化系統(tǒng)的探討
東平水道數(shù)字航道綜合管理平臺系統(tǒng)開發(fā)