戴 橙,陳 勝
(上海理工大學(xué)光電信息與計(jì)算機(jī)學(xué)院,上海 200093)
醫(yī)學(xué)圖像包含病變區(qū)域和背景區(qū)域,對(duì)醫(yī)生來(lái)說(shuō),病變區(qū)域包含了重要價(jià)值的診斷信息,盡管病變區(qū)域在整個(gè)圖像中所占的面積小,提取代價(jià)高,但價(jià)值也高。因此,分割病變區(qū)域一直是醫(yī)學(xué)圖像處理的重要環(huán)節(jié)。目前用于圖像分割的算法有多種,但還沒有一種適用于醫(yī)學(xué)界的可靠圖像分割方法,主要原因是醫(yī)學(xué)圖像的復(fù)雜性和多樣性。
分水嶺算法最早由Beucher S和 Vincen L提出[2-3],它是基于一種數(shù)字形態(tài)學(xué)理論的分水嶺算法(Watershed),由于它簡(jiǎn)單、直觀、速度快可并行處理,對(duì)微弱的邊緣信息敏感,且可得到單像素、連通、位置準(zhǔn)確的輪廊,因此,近年來(lái),風(fēng)水嶺算法已經(jīng)得到了廣泛應(yīng)用。但同時(shí)該方法又有一些嚴(yán)重的缺點(diǎn),它對(duì)噪聲敏感,且容易造成過(guò)分割的問題。通??朔@些問題的方法有兩種:(1)在引用分水嶺算法前對(duì)圖像進(jìn)行預(yù)處理。(2)是在引用分水嶺算法后通過(guò)一定的合并方法對(duì)圖像小區(qū)域進(jìn)行合并整合[4-5]。
很多學(xué)者對(duì)此做了相關(guān)研究。文獻(xiàn)[6]提出了一種分水嶺變換后進(jìn)行基于空間模式聚類算法合并方案的分水嶺算法;文獻(xiàn)[7]提出了一種自適應(yīng)標(biāo)記提取的分水嶺分割算法。但由于醫(yī)學(xué)圖像的固有特性,分割結(jié)果并不理想。
本文綜合醫(yī)學(xué)圖像中病變區(qū)域的獨(dú)特特點(diǎn),在現(xiàn)有分水嶺算法的基礎(chǔ)上做了改進(jìn):(1)在引用分水嶺算法前,通過(guò)一個(gè)有效的最小閾值分離ROI的背景和前景,去除背景非病變區(qū)域;然后用二值形態(tài)學(xué)腐蝕運(yùn)算處理前景區(qū),等到大量的連接與非連接區(qū),并根據(jù)標(biāo)記像素點(diǎn)保留連接區(qū);最后用膨脹運(yùn)算處理連接區(qū)域,得到重建后的候選區(qū)圖像。(2)用傳統(tǒng)的分水嶺算法分割圖像后,候選區(qū)被分割成若干個(gè)像素區(qū)域,通過(guò)像素聚類合并準(zhǔn)則把與主像素類有相同特性的次像素聚類加入到分割結(jié)果中,實(shí)現(xiàn)分割區(qū)域的有效合并,取得了良好的效果。圖1為本文的算法分割流程。
圖1 算法分割流程圖
選取一張包含病變區(qū)域的待分割的感興趣區(qū)域圖像(Region of Interesting,ROI),ROI圖像已經(jīng)經(jīng)過(guò)前期處理,包括對(duì)病變區(qū)域的中心點(diǎn)像素標(biāo)記。在引用分水嶺算法前,先對(duì)待ROI圖像進(jìn)行一定的預(yù)處理,對(duì)圖像進(jìn)行預(yù)處理主要還是避免過(guò)分割的問題。本文對(duì)輸入圖像的預(yù)處理包含2個(gè)步驟:(1)最小閾值法處理ROI。(2)二值形態(tài)學(xué)腐蝕和膨脹運(yùn)算得到侯選區(qū)。
閾值分割法是圖像分割中的一種重要分割算法。由于圖像閾值處理的直觀性和易于實(shí)現(xiàn)的特點(diǎn),以及閾值分割總能用封閉而連通的邊界定義不交疊的區(qū)域,使得閾值化分割算法成為圖像分割中較為常見的分割方法之一。它特別適合于目標(biāo)和背景占據(jù)不同灰度級(jí)范圍的圖像。
最小閾值法是一種簡(jiǎn)單、易于實(shí)現(xiàn)的圖像分割技術(shù)。其原理是利用圖像目標(biāo)區(qū)域與背景區(qū)域的灰度值不同,在選取一個(gè)合適的最小閾值后,通過(guò)灰度圖像中的每個(gè)灰度值與此閾值進(jìn)行逐一比較,從而把圖像分為不同灰度級(jí)的兩類。由于前景區(qū)中包含有重要信息的病變區(qū)域,在去除ROI中非病變區(qū)域時(shí)要保證病變區(qū)域信息不丟失,這里設(shè)定的最小閾值T1起了關(guān)鍵性的作用,可以明顯改善病變區(qū)域的面積大小。
輸入圖像是一幅處理后的灰度圖像,其每個(gè)點(diǎn)的像素值表示為S(i,j),在選取合適的閾值T1后,通過(guò)簡(jiǎn)單的數(shù)值比較算法,其算法為
式中,若像素值s(i,j)大于最小閾值T1,則將保存此像素值,并把其標(biāo)記為1。反之若小于閾值T1,則標(biāo)記為0,最終把這些保存下來(lái)的全部像素顯示,得到前景圖像,即輸出圖像 D(i,j)。
圖像形態(tài)學(xué)的變換不得不涉及到圖像處理中最常用到的兩個(gè)圖像運(yùn)算:腐蝕和膨脹[8],這兩種操作是形態(tài)學(xué)處理的基礎(chǔ),幾乎大部分形態(tài)學(xué)運(yùn)算都是由這兩種基本的算法組合而成。
在形態(tài)學(xué)的著述中,關(guān)于腐蝕的定義:若A和B為Z中的集合,使用B對(duì)A進(jìn)行腐蝕,可用表示為
式(2)表明,使用B對(duì)A進(jìn)行腐蝕就是所有的B中包含于A中的點(diǎn)Z的集合用Z平移。式(2)并不是腐蝕唯一的定義形式,但在形態(tài)學(xué)實(shí)際應(yīng)用過(guò)程中,此公式運(yùn)用更為頻繁。如圖2顯示了腐蝕的過(guò)程。
圖2 腐蝕的過(guò)程
膨脹可以看作是腐蝕的對(duì)偶運(yùn)算,關(guān)于膨脹的定義也不唯一。如果A和B是Z2中的集合,A被B膨脹定義為
式(3)是以得到B的相對(duì)它自身原點(diǎn)的映像,并且進(jìn)行位移為基礎(chǔ)的。把結(jié)構(gòu)元素B看成是一個(gè)卷積模板時(shí),這種定義方式更直觀。盡管膨脹以集合運(yùn)算為基礎(chǔ),卷積以算術(shù)運(yùn)算為基礎(chǔ),但相對(duì)與B的原點(diǎn)對(duì)B進(jìn)行翻轉(zhuǎn),而后逐步移動(dòng)B以便B能滑過(guò)集合A,如圖3顯示了膨脹的過(guò)程。
圖3 膨脹的過(guò)程
為了進(jìn)一步去除前景區(qū)中不需要的信息,還需對(duì)前景區(qū)進(jìn)行腐蝕運(yùn)算。對(duì)前景區(qū)進(jìn)行腐蝕運(yùn)算處理后會(huì)得到大量的連通與非連通區(qū)域,因?yàn)檫B通區(qū)域中包含病變區(qū),根據(jù)之前標(biāo)記的病變區(qū)域像素點(diǎn),定位到這片連接區(qū),然后保留那片連接區(qū)域,去除不屬于該連接區(qū)域的部分;由于對(duì)圖像進(jìn)行了腐蝕操作,病變區(qū)域有可能丟失一部分,因此還需對(duì)該連接區(qū)域用膨脹運(yùn)算來(lái)處理,以此還原分割區(qū)域的大小,保證病變區(qū)域的大小不變,最終得到將要分割的粗略候選區(qū)。
傳統(tǒng)風(fēng)水嶺算法的基本思想是:將一幅灰度圖像看成是一座有山峰和山谷的模擬盆地,灰度圖像中灰度值高則看成是盆地的山峰,灰度值較低的則看成是山谷,然后對(duì)其進(jìn)行模擬水侵。模擬水侵可以看作是注水的過(guò)程。假設(shè)在盆地的每個(gè)山谷最低處存在一個(gè)水源,然后水慢慢從底部往上面上升,在水上升的過(guò)程中,如果碰到兩個(gè)屬于不同盆地的水源將要匯合,則在其兩個(gè)水源的中間出建立一個(gè)水壩,直至水位上升到把全部的山脈淹沒,只剩下水壩。最終水壩連接形成了一個(gè)個(gè)區(qū)域,即分水嶺[9]。盡管分水嶺算法可得到單像素、連通、位置準(zhǔn)確的輪廊,但傳統(tǒng)的分水嶺存在一個(gè)嚴(yán)重的問題,那就是過(guò)分割現(xiàn)象,它會(huì)把圖像中的單一目標(biāo)分割成兩個(gè)甚至多個(gè)區(qū)域,因此在分水嶺變換后,往往需要對(duì)分割后的圖像進(jìn)行區(qū)域的合并操作。為了有效解決過(guò)分割現(xiàn)象,提高分割的精確性,本文運(yùn)用一種改進(jìn)的分水嶺算法,采用一種聚類合并技術(shù)。
由于灰度醫(yī)學(xué)圖像中病變區(qū)的像素點(diǎn)其灰度值往往比周圍非病變區(qū)灰度值小,亮度亮,因此,在分水嶺算法應(yīng)用于醫(yī)學(xué)圖像前,對(duì)輸入圖像進(jìn)行灰度值的反轉(zhuǎn)。本文算法具體的步驟是:首先,反轉(zhuǎn)候選區(qū)圖像的灰度值,使相應(yīng)的山峰變成山谷,便于檢測(cè)病變區(qū)域。然后先用傳統(tǒng)的分水嶺算法處理此圖像,把候選區(qū)分成多個(gè)集水盆地。這樣候選區(qū)中每個(gè)最小值點(diǎn)都被集水盆包圍,即出現(xiàn)一個(gè)或多個(gè)波谷被可構(gòu)成匯水盆地的連接像素聚類包圍。最后,對(duì)分割的區(qū)域圖像再次反轉(zhuǎn),使得相應(yīng)的聚水盆底變成山峰。緊接著對(duì)病變候選區(qū)進(jìn)行像素聚類的檢測(cè)合并操作,其合并遵循如下方法:(1)在分割后的一個(gè)個(gè)像素聚類中,如果某個(gè)聚類包含有病變區(qū)域的像素標(biāo)記點(diǎn),則將此像素聚類定義為主聚類。(2)通過(guò)合并準(zhǔn)則來(lái)判斷與主聚類相鄰的聚類是否有相同特性,從而決定是否把這些相鄰的聚類包含至主聚類中實(shí)現(xiàn)合并。
首先對(duì)合并方法(2)中的合并準(zhǔn)則進(jìn)行說(shuō)明。假設(shè)如圖4(a)是傳統(tǒng)分水嶺變換后圖像,算法將圖像分成多個(gè)聚水盆地,圖中1,2,3區(qū)域。再次將變換后的圖像進(jìn)行灰度值的反轉(zhuǎn),可得得到對(duì)應(yīng)圖4(a)圖反轉(zhuǎn)的圖像,如圖4(b)所示結(jié)果。
圖4 算法分割的結(jié)果
如圖4(b)所示,每個(gè)山峰對(duì)應(yīng)存在一個(gè)峰值為P1,P2,P3在峰值之間必存在一個(gè)極小值,如在 P1和P2之間存在Min1,在P2與P3之間存在Min2,定義合并準(zhǔn)則如下通過(guò)極小值Min與閾值T2進(jìn)行比較,如果極小值Min大于給定的閾值T2,則認(rèn)為,這個(gè)次像素聚類與主像素聚類相鄰并具有相同的特性,滿足合并準(zhǔn)則,可以實(shí)現(xiàn)合并。如果Min比T2大,則視為不滿足條件,將其聚類刪除。最終,得到分割好后的結(jié)果只包含1,2兩個(gè)區(qū)域。
為驗(yàn)證本文試驗(yàn)結(jié)果的準(zhǔn)確性,本文運(yùn)用此改進(jìn)的分水嶺算法來(lái)分割胸部X光的肺結(jié)節(jié)病變區(qū)域圖像。首先選取了一張經(jīng)過(guò)CAD處理,已標(biāo)記出肺結(jié)節(jié)病變區(qū)域的圖像,如圖5(a)所示;然后對(duì)感興趣區(qū)域圖像進(jìn)行圖像的一個(gè)預(yù)處理。本文選取最小閾值T1為5個(gè)像素值,對(duì)圖像進(jìn)行最小閾值法的處理后得到圖像如圖5(b)所示。用7×7的方形結(jié)構(gòu)元素模板對(duì)圖5(b)進(jìn)行腐蝕運(yùn)算得到結(jié)果如圖5(c)所示,根據(jù)之前標(biāo)記在病變區(qū)域中的像素點(diǎn),保留該片連接區(qū)如圖5(d)。同樣用7×7的方形結(jié)構(gòu)模板對(duì)得到的連接區(qū)進(jìn)行腐蝕操作,得到如圖5(e)所示的候選區(qū)域,完成圖像的預(yù)處理工作。最后運(yùn)用本文改進(jìn)的分水嶺算法對(duì)候選區(qū)進(jìn)行分割和聚類合并,得到終極分割的肺結(jié)節(jié)圖像如圖5(f)所示。
圖5 肺結(jié)節(jié)分割圖
圖像分割結(jié)果的好壞目前沒有統(tǒng)一的評(píng)價(jià)標(biāo)準(zhǔn),但通常以金標(biāo)準(zhǔn)圖像作為參考,由于各病變區(qū)域不同,目前所謂金標(biāo)準(zhǔn)圖像都是由相關(guān)專業(yè)的醫(yī)生給出。因此,為了說(shuō)明本文改進(jìn)分水嶺算法的精確性和有效性,本文選擇醫(yī)院放射科的相關(guān)醫(yī)生畫出的肺結(jié)節(jié)圖像作為金標(biāo)準(zhǔn)圖像。從試驗(yàn)結(jié)果來(lái)看,傳統(tǒng)分水嶺算法得到的分割區(qū)域雖然準(zhǔn)確包含了肺結(jié)節(jié),但其面積卻比金標(biāo)準(zhǔn)圖像大很多,其精確性不高。而本文算法得到的結(jié)果更接近金標(biāo)準(zhǔn)圖像,其精確度更高。從有效性來(lái)看,本文的改進(jìn)算法在分水嶺變換前對(duì)圖像進(jìn)行預(yù)處理,大幅簡(jiǎn)化了圖像處理面積,減少了分割的復(fù)雜性,使得分割的處理時(shí)間較快,避免了分割時(shí)算法還需要識(shí)別大量偽區(qū)域情況,較好地保留了肺結(jié)節(jié)輪廓信息。之后運(yùn)用改進(jìn)的分水嶺算法,得到肺結(jié)節(jié)圖像的分割結(jié)果,區(qū)域輪廓數(shù)目明顯減少,使得算法更加有效。圖6為最終結(jié)果圖,圖6(a)為傳統(tǒng)分水嶺變換得到的結(jié)果圖像,圖6(b)是本文算法得到的結(jié)果圖像,圖6(c)是專家給出的金標(biāo)準(zhǔn)圖像。
圖6 最終結(jié)果圖
本文提出了一種改進(jìn)的分水嶺分割方法。首先對(duì)輸入圖像進(jìn)行預(yù)處理,簡(jiǎn)化圖像處理的面積,包括最小閾值法,腐蝕運(yùn)算精簡(jiǎn)待處理的圖像,膨脹運(yùn)算對(duì)精簡(jiǎn)圖像進(jìn)行重建得到候選區(qū)。最后對(duì)候選區(qū)運(yùn)用改進(jìn)的分水嶺算法進(jìn)行分割、合并操作,有效地減輕了過(guò)分割問題,得到較為精確的病變區(qū)域輪廓圖像。本文算法具有快速和精度較高等特點(diǎn),該方法能夠較好地抑制過(guò)分割,具有良好的分割效果。
但本文的方法還存在一些缺點(diǎn)和不足,如得到的分割結(jié)果還不夠理想,分割結(jié)果可能存在漏包含肺結(jié)節(jié)病變區(qū)域。未來(lái)的工作將著眼于:(1)改善文中算法,如改進(jìn)算法前的預(yù)處理,或算法后的合并準(zhǔn)則,使算法更加的可靠和精確,分割結(jié)果更加接近金標(biāo)準(zhǔn)圖像。(2)拓展文中算法的圖像應(yīng)用范圍,使得本文的算法除了應(yīng)用于X光醫(yī)學(xué)圖像,還可應(yīng)用于CT圖像,甚至非醫(yī)學(xué)圖像。
[1] 林瑤,田捷.醫(yī)學(xué)圖像分割方法綜述[J].模式識(shí)別與人工智能,2002,15(2):192 -204.
[2] Vincent L,Soille P.Watersheds in digital spaces:an efficient algorithm based on immersion simulations[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1991,13(6):583-598.
[3] Serra J,Soille P.Mathematical morphology and its applications to image processing[M].Netherlands:Kluwer Academic Publishers,1994.
[4] Victor O R,Saenz L N.An improved watershed algorithm base on efficient computation of shortest paths[J].Pattern Recognition,2007,40(3):1078 -1090.
[5] Sun Han,Yang Jingyu,Ren Mingwu.A fast watershed algorithm base on chain code and its application in image segmentation[J].Pattern Recognition Letters,2005,26(9):1266-1274.
[6] 徐奕奕,劉智琦,劉琦.基于改進(jìn)的分水嶺算法圖像分割方法研究[J].計(jì)算機(jī)仿真,2011,28(9):272 -274.
[7] 譚洪渡,侯志強(qiáng),翊榮,等.基于自適應(yīng)標(biāo)記提取的分水嶺彩圖分割算法[J].計(jì)算機(jī)工程,2010,36(19):229 -231.
[8] 楊琨,曾立波,王殿成.?dāng)?shù)學(xué)形態(tài)學(xué)腐蝕膨脹運(yùn)算的快速算法[J].計(jì)算機(jī)工程與應(yīng)用,2005(34):54-56.
[9] 龔劬,姚玉敏.基于分水嶺和改進(jìn)的模糊聚類圖像分割[J].計(jì)算機(jī)應(yīng)用研究,2011,28(12):4773-4775.