王舒宜 陳漢勇 李 剛 廖琪梅 盧虹冰
摘 要:在醫(yī)學軟件的開發(fā)過程中,實現(xiàn)三維重建技術的優(yōu)劣是系統(tǒng)設計的難點和重點。在探討面繪制與體繪制技術的基礎上,使用OpenGL及VTK工具包完成可視化具體操作,并對其結果進行簡要分析。利用患者髖關節(jié)CT數(shù)據(jù),實施了基于OpenGL的Marching Cube算法、三維紋理映射算法,以及基于VTK的Marching Cube、Ray Casting算法,并對實現(xiàn)過程及實現(xiàn)效果進行了對比分析?;贠penGL與基于VTK的面繪制技術及體繪制技術均能較好呈現(xiàn)患者髖關節(jié)的三維解剖結構信息。其中,面繪制可有效地繪制出三維體的表面,但缺乏內(nèi)部信息的表達;體繪制真實感較好,但渲染速度較慢,不適合用于實時系統(tǒng)的表達。VTK可視化方法實現(xiàn)簡單,適用于快速顯示數(shù)據(jù)空間信息,但其三維交互功能不足;OpenGL屬于底層API,可靈活完成各項交互操作及渲染任務,但其編碼較為復雜。
關鍵詞:面繪制;體繪制;VTK;OpenGL;DICOM
中圖分類號:TP319文獻標識碼:B
文章編號:1004-373X(2009)10-091-03
Application of Three-dimensional Visualization Technology in Medicine
WANG Shuyi,CHEN Hanyong,LI Gang,LIAO Qimei,LU Hongbing
(Fourth Military Medical University,Xi′an,710032,China)
Abstract:AIM three-dimensional reconstruction is the difficulties and focus in development of the medical application software.In this paper,OpenGL and Visualization Tool Kit are used to achieve the specific visualization based on the technology of surface rendering and volume rendering.To contrast the result,some CT data of developmental dysplasia of the Hip patients are reconstructed by using Marching Cube algorithm based on OpenGL and Marching Cube,Ray Casting algorithm which are based on VTK.Marching cube algorithm and Ray casting algorithm based on OpenGL and VTK can both better display the three-dimensional anatomical structure information of patient.Surface can provide effectively render surface of a three-dimensional,but the lack expression of internal information.Instead,volume rendering can greatly improve quality of image,but does not apply to the expression of real-time system.VTK visualization methods can implement simply and rapid display 3D data,it is lack of three-dimensional interactive features.Contrarily,OpenGL which is the underlying API can accomplish flexible interaction,but its code is more complex.
Keywords:surface rendering;volume rendering;VTK;OpenGL;DICOM
0 引言
近年來,隨著計算機斷層(CT)、磁共振(MRI)、B超等設備的研制成功,使得傳統(tǒng)的醫(yī)學診斷方式發(fā)生了革命性變化。使用計算機對醫(yī)學影像設備采集到的數(shù)據(jù)進行處理(醫(yī)學影像處理與分析),為臨床醫(yī)學的診療和醫(yī)學科學的研究,提供了清晰的人體結構圖像和詳盡的病理信息,使得疾病的檢查與診斷發(fā)生了革命性的變革。目前,我國已從國外進口了大批醫(yī)療設備,并在臨床上廣泛應用,但由于國內(nèi)缺乏配套的開發(fā)隊伍,一般使用的是國外公司隨機器附帶的軟件。同時,我國已經(jīng)初步具備了醫(yī)療器械的生產(chǎn)能力,但高質量的配套軟件相當缺乏,抓住這一契機,在國內(nèi)開發(fā)醫(yī)學影像軟件十分必要。
1 方法
1.1 軟件開發(fā)
醫(yī)學軟件的開發(fā)主要分為DICOM(Digital Imaging and Communication of Medicine)數(shù)據(jù)的讀取、圖像分割、數(shù)據(jù)可視化及外科手術模擬等幾部分[1],如圖1所示。其中,數(shù)據(jù)可視化是一個較為關鍵的環(huán)節(jié),它可為醫(yī)生提供病變組織與鄰近結構的空間解剖結構,輔助醫(yī)生直觀、迅速、準確地診斷病變。這里主要介紹目前常用的可視化分析算法,并重點結合OpenGL技術及VTK(Visualization Tool Kit)軟件包實現(xiàn)面繪制(Surface Rendering)及體繪制(Volume Rendering)方法,最后對兩種方法進行簡單比較。
1.2 面繪制與體繪制技術
三維可視化算法大致可分為面繪制與體繪制技術。面繪制技術[2-4]基于三維空間場的等值面提取,可細分為Marching Cube,Marching Tetrahedral,Dividing Cubes等算法。其中,Marching Cubes(MC)算法是體素單元內(nèi)等值面抽取技術的代表,其基本思想是逐個處理數(shù)據(jù)場中的體素,分類出與等值面相交的體素,采用插值計算出等值面與體素棱邊的交點。根據(jù)體素中每一頂點與等值面的相對位置,將等值面與立方體邊的交點按一定方式連接生成等值面,作為等值面在該立方體內(nèi)的一個逼近表示。在計算出體數(shù)據(jù)場內(nèi)所有等值面的有關參數(shù)后用常用的圖形軟件包或硬件提供的面繪制功能繪制出等值面,如圖2所示。
然而,對于復雜物體表面,如果僅用幾何形狀表示各器官的表面,不可能完整顯示其內(nèi)部信息。體繪制[5-7]的目的就在于提供一種基于體素的繪制技術,能顯示出對象體的豐富的內(nèi)部細節(jié)。常用的體繪制算法包括Ray Casting,Ray Tracying,Shear Warp等。其中,Ray Casting為其典型代表,具體思想為從圖像平面的每個象素向數(shù)據(jù)場投射光線,在光線上采樣或沿線段積分計算光亮度和不透明度,按采樣順序進行圖像合成。得到的結果圖像如圖3所示。
在可視化算法的具體實現(xiàn)過程中,對于底層操作用戶可以采用基于OpenGL[3,8]渲染的方法進行重建。OpenGL是由SGI公司開發(fā)的低層三維圖形API(實際上是一種圖形與硬件接口),包含120多個圖形函數(shù),用戶可以用這些函數(shù)來建立三維模型和進行三維實時交互,目前已經(jīng)成為高性能圖形和交互式視景處理的工業(yè)標準。優(yōu)點是操作靈活,可完全依照需求,用于完成各項操作功能,但其缺點是沒有基本可視化模塊,具體算法需要用戶編寫實現(xiàn),對于初學用戶難度較大,實現(xiàn)周期較長。
VTK[4]是一個用于可視化應用程序構造與運行的支撐環(huán)境,具有強大的三維圖形功能,主要進行3D計算機圖形、圖像處理。它是在OpenGL的基礎上采用面向對象的設計方法發(fā)展起來的,將在可視化開發(fā)過程中會經(jīng)常遇到的細節(jié)屏蔽起來,并將一些常用的算法封裝起來。例如:VTK將Marching Cubes算法封裝起來,以類的形式給予支持。這樣用戶在對三維規(guī)則點陣數(shù)據(jù)進行表面重建時就不必再重復編寫Marching Cubes算法的代碼,而直接使用VTK中已經(jīng)提供的VTKMarchingCubes類即可,給從事可視化應用的用戶提供直接的技術支持,但主要缺點是,使用VTK自身提供算法簡單易行,但若增加用戶特定功能較為困難。
VTK具體的程序流程如圖4所示,主要包含可視化(Visualization Pipeline)及圖形(Graphics Pipeline)兩個主要管道。其中,可視化管道負責將信元轉換為圖形數(shù)據(jù);圖形數(shù)據(jù)管道則將圖形數(shù)據(jù)轉化為輸出圖像。
2 結果
這里的DICOM實驗數(shù)據(jù)取自第四軍醫(yī)大學附屬西京醫(yī)院小兒骨科患者髖關節(jié)數(shù)據(jù)。使用PQ6000型多層螺旋CT對病人掃描獲取樣本數(shù)據(jù),掃描范圍從髂前下脊到小轉子。具體參數(shù)為:層數(shù)71,掃描層厚3 mm,重建層厚2 mm,掃描參數(shù)120 kV,70~120 mA(由患者的體形大小決定)。分別使用實驗室自己編寫的直接基于OpenGL的Marching Cubes算法、三維紋理映射算法,以及采用VTK自身提供的Marching Cubes算法、Ray casting算法,其結果對比如圖5、圖6所示。
3 討論
在此主要介紹了體繪制及面繪制技術在醫(yī)學領域中的應用,重點闡述了其基于 OpenGL及VTK的實現(xiàn)方法,并對患者數(shù)據(jù)使用上述方法進行了簡單的對比分析。對比面繪制與體繪制[9-11]技術可知,面繪制可有效地繪制出三維體的表面,但缺乏內(nèi)部信息的表達。同時其可視化效果較差,如提高渲染質量,需增加三角形面片或進行平滑處理,如圖7所示;體繪制真實感較好,但渲染速度較慢,不適用于實時系統(tǒng)的表達。
對比VTK及OpenGL[10,12]兩種顯示技術可知,VTK可視化方法簡單,適用于快速顯示數(shù)據(jù)空間信息,但其三維交互功能不足,如要增加特定功能實現(xiàn)極為困難;OpenGL屬于底層API,可靈活完成各項交互操作及渲染任務,功能強大,但其編碼較為復雜。
對于今后三維平臺的開發(fā),可以采用OpenGL開發(fā)自己的庫函數(shù),以供后期直接使用;或修改VTK,配合ITK(Insight Tool kit)進行分割配準,為自己所用?;蛑苯邮褂肕ITK(Medical Imaging Tool Kit),同時完成可視化及配準操作。
4 結 語
經(jīng)上述分析比較,VTK可視化方法實現(xiàn)簡單,適用于快速顯示數(shù)據(jù)空間信息,但其三維交互功能不足。OpenGL屬于底層API,可靈活完成各項交互操作及渲染任務,但其編碼較為復雜。
參考文獻
[1]Li B,Lu H,Cai W,et al.Computer Aided Diagnosis and Treatment Planning for Developmental Dysplasia of the Hip.SPIE Medical Image,2005,57:44-89.
[2]李改.體可視化MT算法的改進.吉首大學學報:自然科學版,2007,28(1):55-58.
[3]劉磊,馮前進,王文輝,等.基于GPU 的醫(yī)學圖像快速面繪制.計算機工程與應用,2007,43(32):189-191.
[4]張翔,肖小玲,張愛華.基于VTK庫的人腦三維可視化面繪制.長江大學學報:自然科學版,2006,3(1):75-76.
[5]黃展鵬,周蘇娟,趙潔.直接體繪制加速算法綜述.計算機與數(shù)字工程,2008,36(3):28-30.
[6]陶玲,錢志余,陳春曉.基于光線投影的醫(yī)學影像體繪制加速技術.光電工程,2008,35(1):89-93.
[7]宋衛(wèi)衛(wèi),李冠華,歐宗瑛.醫(yī)學體數(shù)據(jù)三維可視化技術.計算機工程與應用,2006(18):22-26.
[8]周建龍,王知衍,肖春.基于紋理映射和GPU的焦點區(qū)域體繪制.計算機輔助設計與圖形學學報,2008,20(1):32-37.
[9]伍新中,張樹生,洪歧,等.大規(guī)模醫(yī)學序列圖像體視化研究與實現(xiàn).北京生物醫(yī)學工程,2008,27(1):11-14.
[10]李晶,阮興云,徐志榮,等.三維體數(shù)據(jù)的可視化探討.醫(yī)療衛(wèi)生裝備,2008,29(6):75-76.
[11]徐夏剛,張定華,洪歧.體視化方法綜述.計算機應用研究,2006(1):12-15.
[12]曹立基,梁家斌,趙俊.用于CT仿真的可視化空腔結構快速薄壁體繪制方法.中國組織工程研究與臨床康復,2007,35(11):7 047-7 049.