李龍威
(黑龍江八一農(nóng)墾大學(xué)信息技術(shù)學(xué)院,大慶 163319)
基于面繪制的心臟三維數(shù)據(jù)可視化方法研究
李龍威
(黑龍江八一農(nóng)墾大學(xué)信息技術(shù)學(xué)院,大慶 163319)
針對目前體繪制方法存在著繪制速度慢,計算開銷大,交互時間長等問題,提出了基于面繪制,結(jié)合VC 6.0下OpenGL圖形庫開發(fā)運行環(huán)境進(jìn)行的心臟三維數(shù)據(jù)可視化方法研究,并針對生成的三維模型進(jìn)行任意點或面的剖分,實現(xiàn)心臟內(nèi)部某一指定位置的定位觀察。通過實踐,研究使用的方法能夠有效地解決心臟三維數(shù)據(jù)的可視化問題,同時,可在三維空間內(nèi)任意對心臟模型進(jìn)行剖分,創(chuàng)建的三維圖像清晰的顯示了心臟內(nèi)部結(jié)構(gòu),實現(xiàn)了心臟任意位置的三維定位觀察。
三維數(shù)據(jù);可視化;面繪制;OpenGL;心臟
目前,對醫(yī)學(xué)影像數(shù)據(jù)的三維可視化研究是科學(xué)計算可視化技術(shù)領(lǐng)域的一個重要分支[1-2],是輔助診斷和輔助治療的重要手段,近年來已成為研究和應(yīng)用的熱點[3]。隨著CT,MRI技術(shù)的應(yīng)用,心臟成像和可視化技術(shù)在心臟類疾病診斷中發(fā)揮著越來越重要的作用[4]。但是,由于目前醫(yī)學(xué)影像數(shù)據(jù)集的數(shù)據(jù)量大,使得心臟數(shù)據(jù)三維可視化技術(shù)面臨巨大的挑戰(zhàn)。
現(xiàn)有的三維可視化繪制方法可以歸納為兩種:表面繪制(Surface Rendering)和體繪制(Volume Rendering)[5]。在這兩種方法中,體繪制是將三維空間的不同類別個體的數(shù)目所得到的數(shù)據(jù)直接轉(zhuǎn)換生成最終的立體圖像,不必生成中間由點、線構(gòu)成的幾何圖元,并最終以計算屏幕上每一個像素的光強(qiáng)度值來實現(xiàn)三維繪制。由于體繪制在計算中需要對所有數(shù)據(jù)進(jìn)行大量的處理和運算,大大增加了體繪制的計算開銷,導(dǎo)致了圖像繪制速度比較慢,從而很難達(dá)到實時交互的效果;而面繪制的宗旨是通過對一系列二維圖像處理、還原物體的三維模型,并以表面的方式顯示出來。由于面繪制的數(shù)據(jù)量較小,因此運行速度較快,更適合實時交互。同時,從交互性能和算法效率的角度來講,基于現(xiàn)有的硬件平臺,三維可視化的繪制方法中面繪制要遠(yuǎn)優(yōu)于體繪制[6]。目前,關(guān)于面繪制方法的研究較多,例如:宮法明等[7]提出的基于DMC算法的醫(yī)學(xué)三維重建模方法,利用插值位置取代,連接等值點生成多邊形網(wǎng),實現(xiàn)三維模型的重建;吳健等[8]提出的基于面繪制實現(xiàn)了醫(yī)學(xué)圖像的可視化;劉宏等[9]提出了有理函數(shù)插值方法,實現(xiàn)了序列圖像高精度面繪制;車武軍等[10]應(yīng)用勢函數(shù)及光線投射原理實現(xiàn)了體數(shù)據(jù)的面繪制等等。然而在這些關(guān)于面繪制方法的研究中,大多只集中于表面繪制效果的研究,很少有基于面繪制方法來實現(xiàn)體數(shù)據(jù)的內(nèi)部數(shù)據(jù)繪制,更沒有關(guān)于模型內(nèi)部任意位置剖分的研究。
因此,基于人體心臟的三維體數(shù)據(jù),在VC6.0和OpenGL圖形庫開發(fā)環(huán)境中,運用面繪制的方法生成三維心臟模型,實現(xiàn)三維空間內(nèi)心臟模型的交互式旋轉(zhuǎn)、縮放等功能,并對心臟三維模型實現(xiàn)了任意位置的剖分,將心臟內(nèi)部結(jié)構(gòu)或病變體更清晰、全面地展示給人們,提高了醫(yī)療診斷的準(zhǔn)確性和正確性。
醫(yī)學(xué)圖像數(shù)據(jù)本質(zhì)上是一個多媒體的數(shù)據(jù)庫,是搜集離散數(shù)據(jù)的數(shù)據(jù)場,其中每個像素的值為fi,j,k= f(xi,yj,zk),(i=1∶Nx,j=1∶Ny,k=1∶Nz)。在醫(yī)學(xué)圖像領(lǐng)域,將相鄰層上每四個像素組成的立方體被稱為立方體體元(cube),每個立方體體元上需要由八個頂點構(gòu)成,并設(shè)定臨界值,這個設(shè)定的臨界值將滿足{(x,y,z)|f(x,y,z)=c0}的點集合。假設(shè),其中一個頂點的函數(shù)值為f≥c0,則該頂點位于等值面之內(nèi)(+)。若f≤c0,則該頂點位于等值面之外(-),如圖1所示。
圖1 立方體體元Fig.1Cube vexel
基于面繪制的物體三維可視化,其根本在于在目標(biāo)區(qū)域內(nèi),根據(jù)已有的灰度級別,通過構(gòu)造等值面,繪制出于灰度級別相對應(yīng)的組織或器官的三維幾何模型[11]。其基本思想是將數(shù)據(jù)體中所有等于給定數(shù)據(jù)值的數(shù)據(jù)點查找出來,定義為一個或多個曲面,被稱之為等值面。等值面的構(gòu)造是從體數(shù)據(jù)中恢復(fù)物體三維描述的常用方法之一。20世紀(jì)80年代,W.Lorensen等[12]提出的Marching Cubes算法算是面繪制方法中最為經(jīng)典的一種。該算法的基本思想是“體元遍歷→得到等值面→拼接擬合等值面”。首先,在立方體體元中以掃描線的形式進(jìn)行處理,并在體元的12條邊線上根據(jù)已知八個頂點的數(shù)據(jù)值與給定數(shù)據(jù)值的關(guān)系尋找近似的等值點,根據(jù)頂點的+或-情況,通過運算得到體元與等值面相交情況可達(dá)256種,其中對稱相交方式可以將256種情況縮減到15種。
在已知等值面(三角形等值面)的情況下,只需得到頂點的空間坐標(biāo)和三角形的法向量,便可顯示出等值面片,并利用線性插值方法可計算出等值面與立方體邊的交點的空間坐標(biāo)。
公式(1),(2)和(3)中c0為等值面閾值。公式(1)中相交的兩個端點為v1(i,j,k),v2(i+1,j,k),公式(2)中相交的兩個端點為v1(i,j,k)v2(i,j+1,k),公式(3)中相交的兩個端點為v1(i,j,k)v2(i,j,k+1)。
對于等值面上的每一點的梯度矢量的方向可以代表等值面在該點處的法向。即
通過計算立方體體元頂點的梯度值,與計算線性差值得到的三角形頂點的法向量相計算,便可得到三角形的法向量。通過法向量與立方體交點所形成的三角形面片,進(jìn)行光照渲染,最終形成了表面模型。
體元頂點的梯度用中心差分法計算如下:
基于Marching Cubes算法,將實驗中所有的人體心臟MRI組織切片數(shù)據(jù)讀取進(jìn)來,提取所有的立方體體元。然后分別處理每一個Cube,得到等值面(即三角形),計算表面法向量,根據(jù)三角形頂點和法向量使用OpenGL繪制出心臟三維模型,并且對生成的三維模型進(jìn)行旋轉(zhuǎn)、縮放等交互式操作以及任意位置切面剖分。
2.1 心臟數(shù)據(jù)三維可視化
所使用的實驗數(shù)據(jù)均由487張469×325像素的人心臟MRI組織切片數(shù)據(jù)所組成的。借鑒W. Lorensen等人的Marching Cubes算法,整體實現(xiàn)過程可以描述為:隨機(jī)讀取兩張切片,每兩張切片可形成一層;將每層相對應(yīng)的四個點繪制成一個立方體體元;按照先左右,后前后的順序處理隸屬于相同層的體元。部分MRI組織切片數(shù)據(jù)如圖2所示:
圖2 部分人體心臟MRI切片數(shù)據(jù)Fig.2The part of cardiac magnetic resonance imaging slices
在OpenGL中進(jìn)行運用MC算法,實現(xiàn)心臟數(shù)據(jù)三維可視化的過程如下:
{
(1){建立基于OpenGL的圖形編程環(huán)境;
(2)讀入切片序列生成數(shù)據(jù);
(3)參考Marching Cubes算法,選取數(shù)據(jù)場所有頂點屬性的信息和三角面的頂點坐標(biāo);
(4)在OnDraw函數(shù)對應(yīng)用程序窗口的客戶區(qū)進(jìn)行繪圖時調(diào)用OpenGL函數(shù)設(shè)置圖形的屬性及參數(shù);
(5)在OpenGL下使用多邊形繪制方法(glDrawElements),繪制出三角形面片的等值面。
}
運用MC算法進(jìn)行人心臟三維數(shù)據(jù)的可視化,通過鼠標(biāo)實現(xiàn)交互式旋轉(zhuǎn)、縮放等操作,將人心臟三維數(shù)據(jù)直觀地再現(xiàn)成三維圖像,醫(yī)生可以從多角度,任意位置對心臟進(jìn)行觀察。實驗結(jié)果如圖3所示。
圖3 人體心臟三維數(shù)據(jù)可視化效果Fig.3Heart of three-dimensional data visualization
2.2 心臟切面
在賈延延等[13]的研究中,利用VTK中已有的vtkImageReslice類實現(xiàn)標(biāo)準(zhǔn)切片顯示,利用vtk-PlaneWidget類和光線投射算法來實現(xiàn)標(biāo)準(zhǔn)切面及心臟剩余部分的顯示。但是,這種方法基于VTK技術(shù)和體繪制方法,切分操作會受到一定因素的限制,同時重繪速度相對較慢。
為了更好地解決對心臟內(nèi)部的定位觀察問題,研究通過定義裁剪平面,實現(xiàn)任意位置對生成的三維心臟模型進(jìn)行剖分處理,對切分后的心臟剩余部分進(jìn)行三維顯示。這樣醫(yī)生可以更加清晰、方便地對心臟內(nèi)部某部位進(jìn)行觀察,準(zhǔn)確、直觀地定位病灶,達(dá)到良好的觀察效果。
研究通過交互式鼠標(biāo)點擊來確定切平面的大小及位置,如圖4所示。
圖4 心臟數(shù)據(jù)切面Fig.4Heart data section
切除后剩余部分的心臟剖面內(nèi)部細(xì)節(jié)及結(jié)構(gòu)特征可清晰地展現(xiàn)出來。該部分實現(xiàn)的算法如下:
(1)獲取鼠標(biāo)點的三維坐標(biāo),將其存儲在數(shù)組中;
(2)根據(jù)數(shù)組中的點創(chuàng)建切平面;
(3)在OpenGL中利用glClipPlane來實現(xiàn)裁剪效果;
(4)設(shè)置切面顏色;
(5)將裁切后的心臟剩余部分模型及切面進(jìn)行顯示。
根據(jù)上述算法設(shè)計并實現(xiàn)了心臟切片數(shù)據(jù)的橫斷、冠狀,矢狀等位置的標(biāo)準(zhǔn)切面圖,同時實現(xiàn)了心臟三維任意切面以及任意角度的虛擬展示,圖5為三維心臟數(shù)據(jù)的標(biāo)準(zhǔn)切片圖。
圖5 人體三維心臟標(biāo)準(zhǔn)數(shù)據(jù)切片圖Fig.5Heart of three-dimensional data standard section
實驗開發(fā)平臺為Microsoft Visual C++6.0結(jié)合OpenGL,所使用實驗數(shù)據(jù)為469×325×487的人體心臟MRI組織切片數(shù)據(jù)。計算機(jī)配置為Pentium(R)4 CPU 3.00 GHz,1.00 GB內(nèi)存,操作系統(tǒng)平臺為Windows XP。圖6為面繪制方法得到的實驗效果圖。
圖6 虛擬心臟三維重建效果圖Fig.6Sketch of virtual heart three-dimensional reconstruction
從圖4可以得出,MC面繪制方法得到了對心臟表面數(shù)據(jù)進(jìn)行了較好的三維重建,圖形效果好,能夠準(zhǔn)確地反映出人心臟三維形態(tài),并且渲染的圖形較為平滑,可細(xì)致地表示原始數(shù)據(jù)。
根據(jù)MC算法原理,在使用面繪制算法的基礎(chǔ)上,保證了運行速度又結(jié)合心臟數(shù)據(jù)的特點。通過提取人體心臟切片數(shù)據(jù),處理每一個切面并計算表面法向量,實現(xiàn)對人體心臟三維模型重建;使用Microsoft Visual C++6.0與OpenGL開發(fā)環(huán)境進(jìn)行多邊形繪制,增強(qiáng)了整體繪制效果。經(jīng)實踐表明研究方法實現(xiàn)了對人體心臟三維可視化的實時繪制,直觀展示了人體心臟全貌,并設(shè)計實現(xiàn)了心臟任意方位的切面顯示,更有效的輔助醫(yī)學(xué)診斷,為今后的醫(yī)療數(shù)據(jù)三維重建提供了重要的參考。
[1]LEVOY M.Display of surface from volume data[J].IEEE Computer Graphics and Application,1988(3):29-37.
[2]王軍.科學(xué)計算可視化及其在醫(yī)學(xué)上的應(yīng)用[J].醫(yī)學(xué)信息,1998,11(12):16-17.
[3]邊瓊芳.基于面繪制技術(shù)的醫(yī)學(xué)影像立體顯示[J].電腦知識與技術(shù),2009(3):685-687.
[4]劉金明,劉桂陽.基于GPU光線投射算法的心臟體數(shù)據(jù)可視化[J].黑龍江八一農(nóng)墾大學(xué)學(xué)報,2013,25(6):78-81.
[5]李曉飛,李鵬飛.基于SIFT的偽造圖像盲檢測算法[J].長春大學(xué)學(xué)報,2014,24(10):1354-1357.
[6]胡戰(zhàn)利,桂建保,周穎,等.基于面繪制與體繪制的CT可視化實現(xiàn)方法[J].微計算機(jī)信息,2009,25(12):107-108.
[7]宮法明,趙興龍.基于MC算法的醫(yī)學(xué)建模方法與研究[J].微計算機(jī)應(yīng)用,2010,31(4):6-10.
[8]吳健,徐靖,租海濤,等.基于面繪制的醫(yī)學(xué)可視化研究[J].計算機(jī)科學(xué),2009,36(4):56-57.
[9]劉宏,閔曙輝.序列圖像的高精度面繪制方法[J].中國傳媒大學(xué)學(xué)報:自然科學(xué)版,2010,17(3):28-32.
[10]車武軍,楊勛年,陳凌鈞,等.一種體數(shù)據(jù)面繪制算法[J].計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報,2001,13(8):757-761.
[11]姜赟.基于面繪制的圖像三維可視化算法研究[D].成都:電子科技大學(xué),2007.
[12]Lorensen W E,Cline H E.Rarching cubes:a high resolution 3D surface construction algorithm[J].Computer Graphics,1987,21(4):163-169.
[13]賈延延,楊飛,左旺孟,等.基于VTK的虛擬心臟切面交互式可視化方法[J].哈爾濱工業(yè)大學(xué)學(xué)報,2010,42(5):770-774.
Visualization Method Research of 3D Cardiac Data Based on the Surface Rendering
Li Longwei
(College of Information and Technology,Heilongjiang Bayi Agricultural University,Daqing 163319)
In this research,the 3D visualization method based on surface rendering and VC6.0 under the environment of OpenGL graphics library was proposed,which could be used to solve the problem of slow rendering,high computational cost and long interaction time in volume rendering.It could realize the generated three-dimensional model of arbitrary division,and achieve a position within the heart of the observation.Through the practice,the method which used in this study could effectively solve the visualization of the 3D data of the heart,at the same time,in any 3D space of the heart model could be divided to create a 3D image clearly showed the internal structure of the heart to achieve the arbitrary heart position of the three-dimensional positioning observation.
3D date;visualization;surface rendering;openGL;heart
TN911.73
A
1002-2090(2017)04-0105-04
10.3969/j.issn.1002-2090.2017.04.024
2016-03-15
李龍威(1988-),女,助教,英國倫敦藝術(shù)大學(xué)畢業(yè),現(xiàn)主要從事計算機(jī)多媒體方面的研究工作。