葉 楠,陳國棟
(福州大學物理與信息工程學院,福建福州 350002)
隨著計算機圖形技術及虛擬仿真技術的不斷發展,計算機輔助技術在肝臟疾病診斷和治療上的應用也越來越廣泛[1]。如何能有效表現和分析出血管管道結構已成為一個重要的研究熱點。肝臟管道的可視化研究主要包括血管的分割、血管骨架的提取、管道的三維重建以及可視化的顯示。其中,骨架作為幾何形態的一種很重要拓撲描述方式,能簡潔地表示物體的基本形狀結構特征,減少物體描述的信息量。在一個血管管道可視化系統中,骨架的表示方式起到了關鍵性的作用。
目前,在血管管道的應用上,三維的骨架提取算法主要有4種類型:基于細化的方法、基于距離場的方法、基于Voronoi圖的方法和基于廣義勢能場的方法[2]。這些方法存在各自的優缺點[3]:細化法能較好地保留骨架的拓撲結構、居中性和連通性,不足在于不能得到精確骨架點;距離場法能夠滿足骨架的幾何特性,但在物體細小狹窄的地方難以保證骨架的連通性和完整性,且中心性容易受邊界的影響;Voronoi圖法可以得到較為滿意的拓撲結構和幾何特性,缺點是在時效上并不樂觀,不適合數據量較大的物體;廣義勢場法[4-6]是從場的方向出發,生成的骨架具有良好的連通性和光滑性,只是在時間復雜度上較高。實際使用時,人們往往根據所需的應用領域選擇相應的方法。肝臟血管管道的三維數據集是由一系列的二維切片構成的,數據量較大;管道的拓撲結構呈樹形結構,在血管末梢上,血管半徑較窄,為了使骨架能夠精確表達出肝臟血管管道的拓撲結構、管道的半徑等信息,對肝臟血管管道骨架的提取提出了以下要求[7-8]:
1)骨架能夠保存原始肝臟血管管道模型的拓撲結構;
2)骨架具有良好的居中特性,骨架線位于原始肝臟血管管道中心線附近;
3)骨架應具有連通性、平滑性和單像素寬;
4)骨架算法應適用在三維空間中;
5)骨架算法對三維物體的位置和噪聲不敏感,具有一定的魯棒性。
針對以上各算法比較結果和骨架要求,本文采用了基于廣義勢場法的肝臟管道骨架可視化仿真方法。對原始數據預處理分割出血管后,三維重建獲得肝臟血管管道的形態結構模型,利用廣義勢場提取出管道的中心路徑關鍵點以及相應的血管半徑,繼而跟蹤關鍵點得出管道骨架,然后結合OpenGL實現可視化。本方法優點在于能適用在三維空間中,充分保留了血管管道的拓撲結構,并保證了骨架的平滑度。實驗結果證明了該方法的有效性和可行性。
美國數字化可視人體數據集來源于美國國立醫學圖書館提出的“可視人體計劃”工程中采集到的人體截面圖像,本文采用該數據集中的肝臟數據作為數據源[9]。
肝臟血管圖像的分割是肝臟管道三維重建過程中的第一步,也是至關重要的一步。在諸多分割算法中,區域增長算法是圖像分割中簡潔而有效的方法,由于血管圖像的連通性,以及血泡的封閉性,使得區域增長算法適用于血管分割。其中,連接門限閾值法(Connected Threshold)就是區域增長法中的一種。
連接門限閾值法是采用了注水迭代來實現訪問種子像素的鄰域。圖形學中注水是滿水法填充,是用來填充區域的[10]。用戶可以提供一個特定的灰度區間[最小閾值,最大閾值],當種子點的鄰近像素的灰度值落入上述區間內時,該算法會將此像素包含入生長區域中,通過反復迭代直至沒有新的區域增加為止。
由于采用的數據集具有彩色成分圖像,因此,為了增強血管強度,先對數據集進行灰度處理,并進行圖像濾波消除噪聲,可減少對分割結果的影響。
在本項研究中,按照上述方法,以Visual Studio 2010為開發環境結合C++和ITK開發包對數據進行了血管分割處理,下面為編號為n=1 509的圖像分割結果。圖1a為原始圖像,圖1b為灰度圖像且去噪后的圖像,紅色的點即為種子點,圖1c為采用[10,33]閾值區間得到的分割結果。

圖1 連接閾值法分割肝臟血管圖像
數字化虛擬肝臟管道骨架可視化研究的關鍵是三維重建,建立具有立體空間、各方位旋轉的肝臟管道模型[11]。本項研究在上述血管圖像分割的基礎上,使用VTK(Visualization ToolKit)開發工具包對圖像序列進行了面繪制的三維重建。主要是通過VTK提供的vtkBMPReader讀取肝臟血管分割后的一系列二維圖形,產生三維信息,并采用vtkContourFilter濾波器抽取等值面為255的血管,而且為了提高渲染的速度和效果,在等值面上利用vtkPolyDataNormals產生一系列的法線,增強平滑感,最后利用窗口進行渲染顯示。
本項實驗一共采用了VCH-F1的147幅600×630肝臟數據集圖像,灰度等級為255。三維重建后的肝臟管道整體結構圖如圖2所示。

圖2 三維重建后的肝臟管道整體結構圖
文中提出的廣義勢場法是以靜電斥力場為基礎,對三維空間中肝臟血管管道骨架的提取。通過生成斥力場,對體素進行歸類,檢測關鍵點,直至生成單像素寬的骨架。下面對算法給出更近一步的描述。
算法基于離散體素的表示,斥力場源是通過在體數據表面邊界點上放置同種點電荷來生成的。對于體素歸為三類:外部點、內部點和邊界點。體素值為0的即為外部點,體素值有非零值即為內部點,若某內部點體素的6鄰域中至少有1個值為0,則該體素為邊界點。由于肝臟血管管道數據集的生成有人工摻雜、噪聲影響以及分割和重建算法自身的不足,因此,體數據中或多或少地存在一些孔洞和內腔。為了提高計算結果的精確性,利用形態學的孔洞填補方法進行處理,可保證體數據中不存在孔洞。
根據上述的約定,掃描體數據,把邊界點坐標都存放于數組B中,現假定內部點中存在一點A,如果有一邊界點與該A點的3個方向上的絕對距離都小于等于閾值(這里取值為100),則認為該邊界點對點A有產生場強,若大于該閾值,則可忽略該邊界點的作用。點A處的勢場值可定義為對該點A有產生場強的邊界點C與該點到邊界點的歐氏距離R的m次冪成反比,公式表達式如下

式中:FAC為點A處的斥力;CA為從邊界點C到點A的方向向量;R為C與A間的距離;m為力的階數(若m=2即為牛頓斥力),m的值越大,邊界點對內部點的作用就越大,反之,m的值越小,產生的勢場就越平滑。由于一體素共有26鄰域鄰接,所以在點A處的勢場值由其26鄰接點的平均值決定,最后的勢場值可歸一化為

式中:數組B存放邊界點的坐標。每個邊界點上的點電荷對每個內部點產生斥力的總和即稱為斥力場。
本部分的輸入即為上述歸一化后的勢力場,輸出即為所需的關鍵點列表。所謂的關鍵點是斥力場為0處的點,它是矢量場的表示拓撲結果的方式之一,也常作為矢量場可視化的表現內容。計算關鍵點處勢場的Jacobian矩陣特征值和特征向量,根據特征值實部和虛部正負符號不同,關鍵點可分為三類:當所有特征值實部為負時,該關鍵點為吸引點;當所有特征值實部為正時,該關鍵點為排斥點;當特征值的實部和虛部有正有負時,稱該關鍵點為鞍點。核骨架的生成將從鞍點開始,具體步驟如下:
1)遍歷所有的鞍點,每個骨架段以鞍點為起始點生成;
2)從鞍點出發,沿著正特征值對應的特征向量為方向,按一定步長前進;
3)若計算出的當前位置和起始位置相同,則算法結束;
4)若下一點是某骨架段A中的點a,則將該點加入到當前段,并且作為段結束的端點,將A段在點a處分開,即A段分成了兩段;
5)若下一點是關鍵點,則直接加入當前段,并且作為段結束的端點;
6)若下一點不是骨架點或關鍵點,將該點歸進當前骨架段,沿著該點的合力方向(即該點的勢場值),繼續前進;若前進過程中步數過多,超出規定的步數值,則算法結束。
算法流程圖如圖3所示。

圖3 算法流程圖
經過上述的計算,最終輸出核骨架的骨架點。
利用Visual C++和OpenGL在計算機上實現了上述算法,計算機的配置為Core 2 Duo E4700 2.6 GHz的CPU,2 Gbyte的RAM,NVIDIA GeForce GT 430顯卡。對骨架化后的肝臟管道可視化結果如圖4所示。
算法骨架提取所需的時間統計信息如表1所示。
從表1中可以看出,在計算三維勢場值時需要占用較長的時間,這是因為在對體數據進行讀取后,需要遍歷各個邊界點,邊界點的數量多少將決定了算法時間的長短。
本文首先對肝臟血管管道做了一系列的前期工作,進行了血管分割和三維重建,繼而提出了一種有效的三維骨架化方法。該方法假定在物體邊界點上放置同種點電荷作為斥力場源,然后通過計算勢場值檢測關鍵點,得出單像素寬的血管骨架點。實驗結果表明了該方法的可行性和有效性。

圖4 對骨架化后的肝臟管道可視化結果

表1 肝臟血管骨架化統計信息
:
[1]翟朝亮,陳國棟,王娜,等.基于體紋理的肝臟可視化仿真方法研究[J].電視技術,2012,36(17):169-172.
[2]CORNEA N D,SILVER D,MIN P.Curve-skeleton properties,applications,and algorithms[J].IEEE Transactions on Visualization and Computer Graphics,2007,13(3):530-548.
[3]CHEN Y,DRECHSLER K,ZHAO W,et al.A thinning-based liver vessel skeletonization method[C]//Proc.Conference on IEEE 2011 International Internet Computing & Information Services(ICICIS).[S.l.]:IEEE Press,2011:152-155.
[4]CHUANG J H,TSAI C H,KO M C.Skeletonisation of three-dimensional object using generalized potential field[J].IEEE Trans.Pattern Analysis and Machine Intelligence,2000,22(11):1241-1251.
[5]CORNEA N D,SILVER D,YUAN X,et al.Computing hierarchical curve-skeletons of 3D objects[J].The Visual Computer,2005,21(11):945-955.
[6]馬銳,伍鐵如.基于廣義勢場的三維形體多層次線骨架構建[J].計算機應用,2011,31(1):16-19.
[7]CHEN Y,DRECHSLER K,LAURA C O,et al.A graph description and analysis framework of liver vascular system[J].Journal of Computational Information Systems,2011,7(6):1998-2005.
[8]王昌.高精度肺部氣道樹的分割及骨架中心線的提取[D].合肥:中國科學技術大學,2010.
[9]美國數字化可視人體數據集[EB/OL].[2013-03-10].http://vhnet.nlm.nih.gov/.
[10]彭微.連接門限閾值法在肝臟CT圖像分割上的應用[J].咸寧學院學報,2011,31(6):72-73.
[11]方馳華,周五一,黃立偉,等.虛擬中國人女性一號肝臟圖像三維重建和虛擬手術的切割[J].中華外科雜志,2005,43(11):748-752.