劉杰,程云章,譚啟璐,韓承航
(上海理工大學(xué)醫(yī)療器械與食品學(xué)院,上海200093)
冠心病是嚴(yán)重危害人類(lèi)健康和生命的疾病,近年來(lái)冠心病的發(fā)病率和死亡率均呈現(xiàn)顯著增長(zhǎng)的趨勢(shì)[1]。據(jù)估計(jì)全國(guó)有心血管疾病患者高達(dá)2.3億人,每年死于心血管病的約300萬(wàn)人,其中絕大部分是死于冠心病心肌梗塞及其相關(guān)的心力衰竭[2]。盡早地發(fā)現(xiàn)冠心病,對(duì)臨床醫(yī)生制定合理的治療方案有著重要的意義。隨著醫(yī)學(xué)成像技術(shù)和醫(yī)學(xué)圖像處理技術(shù)的發(fā)展,針對(duì)醫(yī)學(xué)圖像的三維重建及分割算法的研究成為該領(lǐng)域的熱點(diǎn),獲得一個(gè)良好的分割結(jié)果可為醫(yī)生的診斷提供可靠的依據(jù)。
由于醫(yī)學(xué)圖像本身的特殊性以及復(fù)雜性,使得準(zhǔn)確快速的分割出冠狀動(dòng)脈血管具有一定的挑戰(zhàn)性。目前國(guó)內(nèi)外常用的醫(yī)學(xué)圖像分割方法有測(cè)地活動(dòng)輪廓法、快速行進(jìn)法和區(qū)域生長(zhǎng)法等。其中測(cè)地活動(dòng)輪廓法和快速行進(jìn)法不僅算法執(zhí)行時(shí)間長(zhǎng),且精度也不是很高。而區(qū)域生長(zhǎng)算法則充分考慮了相鄰體素間的相似性質(zhì)(如灰度和梯度等),同時(shí)還可以結(jié)合其他先驗(yàn)知識(shí),作為生長(zhǎng)過(guò)程的準(zhǔn)則,是一種較為理想的圖像分割方法[3]。因此,本研究采用區(qū)域生長(zhǎng)法對(duì)冠狀動(dòng)脈進(jìn)行三維分割。
光線(xiàn)投射法是一種基于圖像空間掃描的,生成高質(zhì)量圖像的典型體繪制算法。其基本思想是從圖像平面的每個(gè)像素出發(fā),沿視線(xiàn)方向發(fā)出一條射線(xiàn),射線(xiàn)上按照一定的步長(zhǎng)進(jìn)行采樣,當(dāng)射線(xiàn)穿過(guò)體數(shù)據(jù)集時(shí),由內(nèi)插計(jì)算每個(gè)采樣點(diǎn)的顏色值和不透明度,然后由前向后或由后向前逐點(diǎn)計(jì)算累計(jì)的顏色值和不透明度,直至光線(xiàn)被完全吸收(透明度累加至1)或穿過(guò)物體時(shí),采樣結(jié)束[4]。其原理示意圖見(jiàn)圖1。
圖1 光線(xiàn)投射法原理Fig 1 Theory of ray casting method
在進(jìn)行體數(shù)據(jù)合成的過(guò)程中,需要把體數(shù)據(jù)投影到觀察平面上,產(chǎn)生結(jié)果圖像。投射光線(xiàn)射向體數(shù)據(jù)時(shí),顏色值和不透明度被合成到一起來(lái)產(chǎn)生結(jié)果圖像的亮度[5]。對(duì)于光線(xiàn)穿過(guò)的每一個(gè)單位正方體,從半透明模型[6]可以得到如下公式:
其中 c(xi)為光線(xiàn)上采樣點(diǎn)的顏色值,α(xi)為采樣點(diǎn)的不透明度,cin為光線(xiàn)穿過(guò)采樣點(diǎn)前的顏色值,cout為光線(xiàn)穿過(guò)采樣點(diǎn)之后的顏色值。這里采樣點(diǎn)的顏色值和不透明度都是對(duì)采樣點(diǎn)所在的單位立方體的八個(gè)頂點(diǎn)體素的顏色值和不透明度進(jìn)行三線(xiàn)插值得到的。
公式(1)描述的是光線(xiàn)從后向前的組合過(guò)程,也可以采用從前向后的組合過(guò)程,公式可表示如下:
光線(xiàn)從后向前的組合過(guò)程可以直接計(jì)算顏色值,而從前向后的組合過(guò)程不但要計(jì)算顏色值還要計(jì)算沿光線(xiàn)累加的不透明度。不過(guò)后者可以利用這個(gè)累加的不透明度來(lái)設(shè)置停止準(zhǔn)則,即當(dāng)透明度累加到1時(shí),后面體素的光線(xiàn)將因?yàn)橥耆粨踝《鴮?duì)結(jié)果圖像沒(méi)有貢獻(xiàn),此時(shí)的cout就是結(jié)果圖像的顏色值。本研究選用從前向后的組合過(guò)程。
本研究利用光線(xiàn)投射法,結(jié)合VTK函數(shù)庫(kù),對(duì)患者胸腔CT圖像序列進(jìn)行三維重建。VTK(visualization toolkit,VTK)是一種基于Open-GL的用于3D圖形學(xué)、圖像處理及可視化的工具包。它容納了圖像和可視化領(lǐng)域內(nèi)的上百種算法。利用VTK的可視化技術(shù),可方便的實(shí)現(xiàn)將連續(xù)的斷層圖像合成為三維實(shí)體模型。
利用VTK進(jìn)行體渲染(光線(xiàn)投射法)的前提是映射出顏色值和不透明度,兩種映射分別由vtkColorTransferFunction類(lèi)和vtkPiecewiseFounction類(lèi)構(gòu)造完成,不透明度映射的參數(shù)設(shè)置為(350,1.0),(100,0.05),(1,0.05)。顏色映射的參數(shù)設(shè)置為(1,1,1,0),(100,1,1,0),(101,1,0,0)。將創(chuàng)建好的映射函數(shù)需要分配給vtkVolumeProperty對(duì)象,該對(duì)象之后又將作為屬性(包括顏色、標(biāo)量不透明度、梯度不透明度等)關(guān)聯(lián)到vtkVolume上。最后通過(guò)將圖像添加到顯示窗口中,并加入交互器,實(shí)現(xiàn)了患者胸腔三維模型的顯示和交互。三維重建結(jié)果見(jiàn)圖2。
圖2 三維重建處理結(jié)果Fig 2 Consequences of three-dimensional reconstruction
如今傳統(tǒng)的人工分割方法由于其效率低等劣勢(shì)正逐漸被淘汰,半自動(dòng)以及全自動(dòng)分割技術(shù),作為計(jì)算機(jī)輔助診斷的重要組成部分,成為人們關(guān)注的焦點(diǎn)。區(qū)域生長(zhǎng)法是各類(lèi)半自動(dòng)圖像分割算法中效率較高的算法之一[8],在算法的執(zhí)行速度以及準(zhǔn)確性方面都有較高的性能[9],并且已經(jīng)廣泛應(yīng)用于血管分割。其基本思想是將具有相似性質(zhì)的像素集合起來(lái)構(gòu)成區(qū)域[10]。目前,區(qū)域生長(zhǎng)法在二維圖像分割中已經(jīng)得到了廣泛的應(yīng)用,本研究將此方法由二維分割層面擴(kuò)展到三維分割層面,以得到具有足夠精度的冠脈模型。其實(shí)現(xiàn)步驟[11]及原理圖見(jiàn)圖3。
圖3 區(qū)域生長(zhǎng)法原理Fig 3 Theory of region growing method
第一階段,進(jìn)行種子點(diǎn)或種子區(qū)域的選取以及閾值的設(shè)定。種子點(diǎn)位于待分割區(qū)域內(nèi),由一個(gè)或一系列像素點(diǎn)(或體素)構(gòu)成,同時(shí)建立一個(gè)空棧,并將種子點(diǎn)存入其中。
第二階段,研究種子點(diǎn)鄰域中尚未經(jīng)過(guò)處理體素點(diǎn)T,T可表示為:
其中N(x)表示點(diǎn)x的鄰域,Ai表示被選取的種子點(diǎn)或種子區(qū)域。按照指定好的相似性準(zhǔn)則判斷,將滿(mǎn)足條件的體素作為新的種子點(diǎn)歸入棧中。其中相似性判據(jù)可以寫(xiě)作下式:
其中g(shù)(x)表示種子點(diǎn)x處的灰度值,g(y)表示種子點(diǎn)鄰域y處的函數(shù)值,α為設(shè)定的閾值。如果我們將單一的種子點(diǎn)變?yōu)榉N子點(diǎn)序列時(shí),則使用種子點(diǎn)序列的灰度平均值替換單一種子點(diǎn)的灰度值[12],可將式(4)轉(zhuǎn)化為 :
如果我們將閾值參數(shù)化表示時(shí),可將其表示為任一體素點(diǎn)與其鄰域內(nèi)其他體素點(diǎn)灰度值之差的最小值[13],則 α可表示為:
其中 g(y),g(q)均表示種子點(diǎn)鄰域內(nèi)任一點(diǎn)的灰度值。所以此時(shí)式(4)可寫(xiě)為:
第三階段,隨著迭代的進(jìn)行,當(dāng)沒(méi)有更多的新種子點(diǎn)產(chǎn)生時(shí),則區(qū)域生長(zhǎng)法結(jié)束,此時(shí)棧中的所有體素所構(gòu)成的區(qū)域即為分割結(jié)果。
ITK是一個(gè)用于醫(yī)學(xué)圖像處理的函數(shù)庫(kù),其中包含豐富的圖像分割算法程序。對(duì)于區(qū)域生長(zhǎng)算法,ITK中封裝有 itkConnectedThresholdImageFilter類(lèi)、itkConfidenceConnectedImageFilter類(lèi)以及 itk-NeighborhoodConnectedImageFilter類(lèi)分別進(jìn)行連通閾值、置信連接和鄰域連接的分割處理。連通閾值需要用戶(hù)設(shè)定初始參數(shù),包括種子點(diǎn)坐標(biāo)、上閾值和下閾值[14]。判定規(guī)則為,判斷種子點(diǎn)鄰域內(nèi)的某一點(diǎn)灰度值是否滿(mǎn)足上下閾值區(qū)間,滿(mǎn)足則歸入棧中,否則將其忽略。置信連接需要設(shè)定的初始參數(shù)有種子點(diǎn)坐標(biāo)、乘法因子f和種子點(diǎn)鄰域大小[15]。判定法則為,首先計(jì)算當(dāng)前區(qū)域內(nèi)體素灰度值的期望m和標(biāo)準(zhǔn)差σ,之后構(gòu)造一個(gè)置信區(qū)間[m-fσ,m+fσ],鄰域內(nèi)灰度值處于該區(qū)間的體素歸入棧中,否則將其忽略。鄰域連接法與連通閾值法的操作大致相同,區(qū)別在于其初始參數(shù)包含某一點(diǎn)的鄰域大小,當(dāng)某一點(diǎn)及其被指定鄰域內(nèi)各點(diǎn)的灰度值均處于閾值范圍內(nèi)才將該點(diǎn)歸入棧[14]。參數(shù)設(shè)置見(jiàn)表1。
表1 三種分割算法各自的參數(shù)設(shè)置Table 1 Manually parameter setting of three segmentation algorithm respectively
三種分割方法的結(jié)果見(jiàn)圖4;運(yùn)行時(shí)間見(jiàn)表2。
比較三種分割結(jié)果得出,連通閾值和置信連接算法的分割結(jié)果中細(xì)節(jié)損失較小,精度相對(duì)較高,而鄰域連接算法對(duì)圖像中一點(diǎn)及其鄰域的同一性判據(jù)要求較高,所以此方法過(guò)濾圖像噪聲的魯棒性較強(qiáng),但分割結(jié)果中細(xì)節(jié)損失較大。從程序的運(yùn)行時(shí)間上可以得出,置信連接算法由于算法本身需要計(jì)算區(qū)域內(nèi)體素的期望和標(biāo)準(zhǔn)差,所以耗時(shí)最多,效率最低。另外兩種分割方法的運(yùn)行時(shí)間則相對(duì)較少。因此,從算法的分割精度以及分割效率綜合考慮,連通閾值分割方法較為理想。
圖4 (a)置信連接算法;(b)連通閾值算法;(c)鄰域連接算法Fig 4 (a)Confidence connecting;(b)Connected Threshold;(c)Neighborhood connecting
表2 三種分割算法各自的運(yùn)行時(shí)間Table 2 Performance periodof three segmentation algorithm respectively
本研究首先對(duì)三種圖像分割算法進(jìn)行比較,得出區(qū)域生長(zhǎng)算法操作簡(jiǎn)單、對(duì)圖像的中間處理環(huán)節(jié)較少,對(duì)圖像的細(xì)節(jié)損失以及運(yùn)算量等方面也比較少,因此將其作為三維分割算法的最終選擇。
在三維重建過(guò)程中,利用光線(xiàn)投射法,結(jié)合VTK開(kāi)源軟件包,可以方便的對(duì)患者胸腔斷層圖像臨床樣本進(jìn)行三維重建。通過(guò)設(shè)置不同的顏色值函數(shù)和不透明度函數(shù),可以分別顯示不同的組織,便于人們觀察其解剖結(jié)構(gòu)。在冠狀動(dòng)脈模型的分割過(guò)程中,將傳統(tǒng)的區(qū)域生長(zhǎng)法應(yīng)用于三維情形,并結(jié)合ITK函數(shù)庫(kù),可以實(shí)現(xiàn)對(duì)三維模型中感興趣區(qū)域的分割。
實(shí)驗(yàn)結(jié)果表明,該方法可以成功的提取出冠狀動(dòng)脈的主干結(jié)構(gòu),有助于醫(yī)生直觀的了解冠狀動(dòng)脈的解剖結(jié)構(gòu)及病灶三維形態(tài),同時(shí)也為實(shí)現(xiàn)冠狀動(dòng)脈狹窄的無(wú)創(chuàng)化診斷提供有利條件。