本站小編為你精心準備了醫(yī)學圖像三維重建探討參考范文,愿這些范文能點燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。
1三維重建分類
圖像三維重建的方法主要有兩大類:一類是三維面繪制;另一類是三維體繪制。體繪制更能反應真實的人體結構。由于體繪制算法運算量太大,即使利用高性能的計算機,仍然無法滿足實際應用中交互操作的需要,因此,面繪制仍是目前的主流算法。
1.1三維面繪制(SurfaceRending)表面表示是表示三維物質形狀最基本的方法,它可以提供三維物體的全面信息,其具體形式用邊界輪廓線和表面曲面表示。
1.1.1基于斷層輪廓的表面重建
在斷層圖像中,通過手工或自動方式實現(xiàn)目標輪廓的確定性分割,然后用各層的輪廓線“堆砌”在一起表示感興趣物體的邊界,這種輪廓線表示方法簡單且數(shù)據(jù)量小,但是不很直觀。除了以輪廓線表示物體外,還可以由輪廓重建物體的表面來表示。最早的方法是基于多邊形技術,主要采用平面輪廓的三角形算法,用三角片面擬合這組表面輪廓的曲面,Bussonnat提出了另外一種基于表面輪廓的Delaunay三角形方法,解決了系列表面輪廓的三維連通性問題。用三角形或多邊形的小平面(或曲面)在相鄰的邊界輪廓線間填充形成物體的表面,所得出的只是分片光滑的表面,Lin采用從輪廓出發(fā)的B樣條插值重建算法,得到了整體光滑的表面。
1.1.2基于體素(Voxel)的等值面重建[1,2]
所謂等值面是指空間中的一張曲面,該曲面上函數(shù)F(x,y,z)的值等于某一給定值。等值面生成的最早研究是從醫(yī)學圖像的應用開始的。由于醫(yī)學圖像數(shù)據(jù)是三維正交等距網格,組織三維圖像的基本六面體單元稱為體素(Voxel)。基于體素的等值面重建方法主要有以下幾種。
(1)Cuberille方法。該方法將三維圖像中的每一像素看成是空間中的一個六面體單元,即體素。在體素內數(shù)據(jù)場具有相同的值,用邊界體素的六個面擬合等值面,即邊界體素中相互重合的面去掉,只把不重合的面連接起來近似表示等值面。這種方法的特點是算法簡單易行,便于并行處理,因為對每個體素的處理都是獨立的;主要問題是出現(xiàn)嚴重的走樣,顯示圖像給人一種“塊狀”感覺,尤其在物體邊界處鋸齒形走樣特別醒目,而且顯示粗糙,不能很好地顯示物體的細節(jié)。
(2)MarchingCubes方法[3,4]。這是由Lore2nesen提出的一種基于體素的表面重建方法,MC方法是三維規(guī)則數(shù)據(jù)場等值面生成的經典算法,它先確定一個表面閾值,計算每一個體素內的梯度值,并與表面閾值進行比較判斷,找出那些含有表面的立方體,利用插值的方法求出這些表面,這其實是抽取等值面的過程。其主要優(yōu)點是可以采用比較成熟的計算機圖形學方法進行顯示。計算量小,運行速度快,借助于專用硬件支持,在高性能PC上面繪制完全可以實現(xiàn)實時交互顯示,但它存在連接上的二義性,為解決二義性問題,提出了很多有效的方法。例如MarchingTetrahedral,DiscMC方法。
(3)MarchingTetrahedral方法[5]。Marc2hingTetrahedral算法(簡稱MT算法)是在MC算法的基礎上發(fā)展起來的,該算法首先將立方體體素剖分成四面體,然后在其中構造等值面,進行四面體剖分后,等值面在四面體中的剖分模式減少,算法實現(xiàn)簡單。其次,構造的等值面較MC算法構造的等值面精度高。而最直接的原因是企圖通過在四面體內構造等值面來避免MC算法中存在二義性問題。常見的立方體剖分成四面體的方法有5個、6個和24個四面體剖分法。一般最常用的是5個四面體剖分法。
(4)DividingCubes方法。這種方法是逐個掃描每個體素,當體素的8個頂點越過等值面時,將該體素投影到顯示圖像上。如果投影面積大于一個像素的大小,則該體素被分割成更小的子體素,使子體素在顯示圖像上的投影為一像素的大小,每一子體素在圖像空間被繪制成一表面點。每一表面點由對應子體素的值,對象空間中的位置和剃度三部分表示,可使用傳統(tǒng)的圖形學消影技術,將表面點繪制到圖像空間中。采用繪制表面點而不是繪制體素內等值面片,從而節(jié)省了大量的計算時間。
1.2三維體繪制(VolumeRending)[6]體繪制由于直接研究光線通過體數(shù)據(jù)場與體素的相互關系,無需構造中間面,體素的許多細節(jié)信息得以保留,結果的保真性大為提高。從結果圖像的質量上講,體繪制要優(yōu)于面繪制,但從交互性能和算法效率上講,至少在目前的硬件平臺上,面繪制還是要優(yōu)于體繪制的。下面討論三種體繪制方法。
1.2.1投影法(Projection)首先根據(jù)視點位置確定每一體素的可見性優(yōu)先級,然后,按優(yōu)先級由低到高或由高到低的次序將所有體素投影到二維像平面上,在投影過程中,利用光學中的透明公式計算當前顏色與阻光度,依投影順序(即體素可見性優(yōu)先級)的不同,投影法分為從前至后(Front2to2Back)算法與從后至前(Back2to2Front)算法。一般說來,前一種算法運算速度快,但除需一個顏色緩存區(qū)外,還需要一個阻光度緩存區(qū);后一種算法僅需一個顏色緩存區(qū),并在執(zhí)行過程中產生不同層面的圖像,有助于醫(yī)生更好地理解醫(yī)學圖像。
1.2.2光線跟蹤法(Ray2Casting)此法是在體數(shù)據(jù)進行分類后,從像空間的每一體素出發(fā),根據(jù)設定的方法反射一條光線,在其穿過各個切片組成體域的過程中,等間距地進行二次采樣,由每個二次采樣點的8個領域體素用三次線性插值法得到采樣點的顏色和阻光度值,依據(jù)光照模型求出各采樣點的光亮度值,從而得到三維數(shù)據(jù)圖像。光線跟蹤法所面臨的問題是運行速度慢,可利用空間相關性提高算法的效率。
1.2.3最大密度投影(MIP)最大密度投影是一種廣泛使用的體繪制技術,傳統(tǒng)的MIP算法使用光線跟蹤法(Ray2Cast2ing)跟蹤圖像平面上每個像素發(fā)出的投影光線與體數(shù)據(jù)相交的每個體素,逐個比較,找出每條光線上的最大值,將它作為投影平面上對應點的像素值。臨床上在病人血管中注入造影劑后進行CT或磁共振成像,然后,用MIP算法顯示血管的位置、形狀和拓撲結構,也稱為血管造影(Angiogra2phy)。幾乎所有的商用醫(yī)學圖像系統(tǒng)都包含MIP繪制模塊。由于MIP的結果缺少深度信息,觀察時要對體數(shù)據(jù)旋轉,這意味著每次要計算5~20幀圖像。顯然,若不優(yōu)化,血管造影只能在昂貴的大型工作站上實現(xiàn)。
2三維表面重建MC算法的改進
2.1離散MarchingCubes算法
離散MarchingCubes算法(簡稱DiscMC)是MONTANIC,SCATENIR和SCOPIGNOR在2000年提出的一種新型的MarchingCubes的改進算法[3],它將三維表面的重構和簡化過程融為一體,在等值面的生成過程中就自適應地完成了面片合并。與其它簡化算法相比[2],DiscMC具有算法效率高、簡化比例高、損失精度小等優(yōu)點。同時,DiscMC還采用了非常簡捷的辦法解決了經典MarchingCubes算法中的二義性問題。說明DiscMC的算法流程如圖1所示。其中左面是4個相鄰的體元(Cubes),帶有黑點側的9個頂點位于等值面內,另外9個頂點位于等值面外,上面一行說明了用經典的MarchingCubes算法構造等值面三角面片的結果,下面一行說明了DiscMC的構造和簡化流程。經典MarchingCubes算法直接根據(jù)這4個體元頂點的內外狀態(tài)構造出8個三角面片,這些三角面片的頂點是根據(jù)所在邊的兩個頂點的密度值通過插值計算得出。DiscMC則把整個過程分成三步:(1)掃描(Marching):首先,所有與等值面相交的體元被逐一掃描,根據(jù)其8個頂點的內外狀態(tài),按照規(guī)定好的方式生成三角面片。在這一步中,所有生成的三角面片只是用它所在體元的位置和其形態(tài)的編號進行記錄,并不計算實際的頂點坐標值。(2)合并(Merging):三角面片生成后,將凡是位于同一平面并且相鄰的三角面片得到合并,形成大的多邊形,隨后,大的多邊形又被重新劃分為三角形。(3)插值(Interpolating):DiscMC的最后一個步驟是通過線性插值計算出最后所得的三角面片的頂點坐標,這一步和經典的MC算法是相同的。
2.2三維重建的代碼實現(xiàn)[7~12]
采用格式為dcm的256×256×110的MRI人頭圖像序列,采用VisualC++6.0進行開發(fā)的,應用了MFC,OpenGL等技術,運行于Win2dows2000環(huán)境下。這里僅列出DiscMC算法實現(xiàn)的程序框架:DiscMC算法實現(xiàn)的偽代碼如下:{清除當前正在顯示的三維表面的數(shù)據(jù)結構;從CT數(shù)據(jù)與處理文件(PRE)中讀取原始數(shù)據(jù);if從PRE文件中讀取數(shù)據(jù){通過輪廓線數(shù)據(jù)進行體數(shù)據(jù)的填充;清除斷層輪廓線的數(shù)據(jù)結構;}for(對每一個物體){初始化存儲掃描形成的三角面片的兩層鏈表結構INCIDENCE;for(對每個個體元){查表找到對應的三角面片分布情況;將每一個三角面片根據(jù)其平面方向和所處位置加入INCIDENCE;}初始化三角面片鏈表FaceList、頂點鏈表PointList和多邊形鏈表PolyList;for(對INCIDENCE中的每一個平面){清空用于合并的二維數(shù)組Merger;for(對于該平面上的每個三角形或矩形){查表找到該三角形或矩形的邊對應于Merger中的編號;以異或模式將每條邊寫入Merger;}至上而下掃描Merger,將合并的圖形劃分為凸多邊形,加入PolyList;}將PolyList中涉及到的頂點加入PointList,同時建立頂點的逆向索引;for(PolyList中的每個凸多邊形){檢查其邊界上(不含端點)是否有點在PointList中;找到這樣的“T”型點,加入該多邊形,同時做標記;進行“之”字形的三角形劃分,生成的三角面片加入FaceList;if(不能劃分完)進行扇狀劃分;}清除PolyList;清除INCIDENCE;將FaceList中的數(shù)據(jù)轉移到數(shù)組FaceArray中;清除FaceList;將PointList中的數(shù)據(jù)轉移到數(shù)組VertexArray中,同時進行插值;清除PointList;}對所有頂點計算其法向量;進行OpenGL的有關設置,準備顯示。
3結語
三維重建在醫(yī)學中應用越來越廣泛,用其作為醫(yī)生診斷病情的輔助手段,能夠極大地提高醫(yī)療診斷的準確性和科學性。目前,OpenGL已成為開放的圖際圖形標準,基于OpenGL開發(fā)的大量三維圖形應用軟件系統(tǒng),已經廣泛應用于科學可視化、實體造型、CAD/CAM、模擬仿真、圖像處理、地理信息系統(tǒng)、虛擬現(xiàn)實等各個領域。運用OpenGL進行醫(yī)學圖像的三維圖形重建,可大大節(jié)省開發(fā)時間,提高軟件的可靠性。目前,利用OpenGL來實現(xiàn)醫(yī)學圖像的三維可視化已經成為一個熱點。