【作 者】錢明理,黃昕
1 上海交通大學(xué)醫(yī)學(xué)院附屬新華醫(yī)院,上海市,200092
2 上海交通大學(xué)醫(yī)學(xué)院,上海市,200025
近年來隨著模糊數(shù)學(xué),神經(jīng)網(wǎng)絡(luò),模式識別等計算方法的引入圖像處理領(lǐng)域,各種新的算法不斷提出,使得數(shù)字圖像處理應(yīng)用的范圍不斷擴(kuò)大。
醫(yī)學(xué)圖像處理種類涉及多個領(lǐng)域,在生物醫(yī)學(xué)的顯微圖像的處理分析方面,有紅細(xì)胞、細(xì)菌與染色體分析;胸部X 線片的鑒別,眼底照片的分析,以及超聲波圖像的分析等均為醫(yī)療輔助診斷的有力工具。 醫(yī)學(xué)圖像處理就是將圖像處理技術(shù)用于醫(yī)學(xué)分析,如細(xì)胞的形態(tài)學(xué)分析,細(xì)胞的識別等,都是圖像處理在醫(yī)學(xué)上的重要應(yīng)用。醫(yī)學(xué)圖像處理及時,有利于提高醫(yī)學(xué)診斷的準(zhǔn)確性,時效性。特別是模式識別技術(shù)與圖像處理技術(shù)的結(jié)合,更增強(qiáng)了對細(xì)胞形態(tài),病變等的自動分析能力,有助于制定客觀,有效地治療方案。
圖像分割是將圖像中有意義的特征或者需要應(yīng)用的特征提取出來,這在對微生物或細(xì)胞圖像的分析中有很大意義。
以各種手段獲得的圖像(稱為原始圖像),由于受到種種條件的限制和隨機(jī)干擾,往往要用數(shù)字圖像處理技術(shù)對取得的圖像做預(yù)處理,如對原始圖像進(jìn)行灰度校正,噪聲過濾和畸變校正等處理。圖像預(yù)處理的基本方法是: 圖像變換,圖像增強(qiáng)和圖像恢復(fù)[1-2]。
圖像分割就是按照一定的規(guī)則將一幅圖像或景物分成若干個部分或子集,將圖像中有意義的特征或者需要應(yīng)用的特征提取出來。圖像分割方法很多,可分為相似性分割和非連續(xù)性分割。所謂相似性分割,就是將具有同一灰度級的象素聚集在一起,形成圖像中的不同區(qū)域。所謂非連續(xù)性分割就是首先檢測局部不連續(xù)性,然后將它們連接起來形成邊界,把圖像分成不同的區(qū)域。
1.2.1 圖像的濾波
任何一幅未經(jīng)處理的原始圖像,都存在著一定程度的噪聲干擾。噪聲惡化了圖像的質(zhì)量,使圖像模糊,甚至淹沒圖像特征,給分析帶來困難。一般在圖像處理技術(shù)中常見的噪聲有:加性噪聲,量化噪聲,椒鹽噪聲等。消除噪聲的工作稱為圖像平滑或濾波。圖像平滑處理使用鄰域平均法對整個圖像進(jìn)行平均運(yùn)算。圖像平均是以圖像模糊為代價來換取噪聲的減少,因此在使用該方法對圖像平化后,將會丟失部分的圖像細(xì)節(jié)。
1.2.2 閾值的選取
閾值選取是圖像分割的基礎(chǔ),閾值的選擇的恰當(dāng)與否對分割的效果起著決定性的作用。采用大津閾值判別法選取恰當(dāng)?shù)拈撝担瑏頋M足圖像分割的需要。
1.2.3 大津法(OTSU 法)[3]
大津法由大津于 1979 年提出,實際上就是類間方差值,閾值t分割出的前景和背景兩部分構(gòu)成了整幅圖像。在測試中發(fā)現(xiàn),大津法選取出來的閾值非常理想,對各種情況的表現(xiàn)都較為良好。雖然它在很多情況下都不是最佳的分割,但分割質(zhì)量通常都有一定的保障,可以說是最穩(wěn)定的分割。
1.2.4 二值化處理實例
在取得適當(dāng)?shù)拈撝岛?,便可以進(jìn)行圖像的二值化處理了。設(shè)一幅圖像的原始象素為f(x, y),經(jīng)過二值化后的目標(biāo)象素為g(x, y),閾值為t,則其有如下關(guān)系:
灰度圖象通過二值化處理此后,可以獲得細(xì)胞的大體輪廓,如圖1、2所示。
圖1 原始圖像Fig.1 Original image
圖2 二值化圖像Fig.2 Binarized image
二值化后的圖象中,背景為黑色(值為0),前景細(xì)胞為白色(值為1)圖像在二值化處理以后,不僅可以達(dá)到簡單的分割來獲得圖像的大體輪廓形狀,并且為下面的邊緣檢測,及city-distace(圖像距離化處理)作好準(zhǔn)備。
邊緣檢測是圖像處理與識別中最基礎(chǔ)的內(nèi)容之一,一幅圖像就是一個信息系統(tǒng),其大量信息是由它的輪廓邊緣提供的?,F(xiàn)有諸多邊緣檢測的方法各有其特點,同時也都存在著各自的局限性和不足之處,因此圖像的邊緣檢測這個領(lǐng)域還有待于進(jìn)一步的改進(jìn)和發(fā)展。在數(shù)字圖像中,所謂邊緣是指其周圍像素灰度有階躍變化或屋頂變化的那些像素的集合。這種不連續(xù)常可利用求導(dǎo)數(shù)方便的檢測到,一般常用一階和二階導(dǎo)數(shù)來檢測邊緣[4]。這種方法通常稱為邊緣檢測局部算子法。邊緣的檢測可借助空域微分算子通過卷積完成。實際上數(shù)字圖像中求導(dǎo)數(shù)是利用差分近似微分來進(jìn)行的。
1.3.1 一階微分
基于一階微分的邊緣檢測算子包括Roberts算子,Sobel算子,Prewitt 算子與Laplacian。利用梯度最大值或?qū)?yīng)于一階微分幅度最大的方法提取邊界。在算法實現(xiàn)過程中,通過 2×2或者 3×3的模塊作為核與圖像中的每個像素點做卷積和運(yùn)算,然后選取合適的閾值以提取邊緣。
1.3.2 二階微分
利用二階微分過零點的原理提取邊界點,Laplacian 邊緣檢測算子就是其中的代表,通過3×3卷積核運(yùn)算,選取合適的閾值以提取邊緣。
1.3.3 綜合正交算子
邊緣的存在是圖像中灰度之不連續(xù)的一般表現(xiàn),按照這個觀點,圖像中的孤立點和直線段也可看作邊緣。直線段可看作 2 個相鄰的邊緣構(gòu)成。同樣可以使用特殊設(shè)計的正交模板用來檢測,以到達(dá)特定的需要,如波紋模板。
將二值化后的二值圖像用微分算子對其進(jìn)行卷積,能夠進(jìn)一步提取出細(xì)胞邊界的細(xì)節(jié), 因為一幅二值圖像本身就已經(jīng)是輪廓分割后的效果,對它求導(dǎo)數(shù)的話,可以略去背景對圖像的干擾,以及目標(biāo)本身內(nèi)部細(xì)節(jié)的干擾。二值圖像邊緣檢測加強(qiáng)了對細(xì)胞邊緣的顯示,而忽略了其他對圖像有干擾的因素,得到比較明顯的細(xì)胞邊緣結(jié)構(gòu)。
分水嶺也稱水壩(Watershed)分割方法將測地理論的集合運(yùn)算推廣到灰度圖像領(lǐng)域。把灰度圖像看作一種地理表面,灰度值對應(yīng)表面的高低,猶如地理表面存在許多峰、谷。兩個相鄰盆地,從盆地底部有泉水涌出,首先涌到較低的盆地,而后涌到較高盆地,稱淹沒過程。當(dāng)兩個盆地中的水即將會合時,建立一道水壩隔開,稱水壩線。對整個地理表面實施淹沒就會分割出許多區(qū)域。 使用水壩算法時,一般先對灰度圖作梯度變換,則高梯度的邊界對應(yīng)水壩線。在實施水壩算法時,為克服過度分割,不是在所有盆地間建立水壩,而是從預(yù)先選好的標(biāo)記盆地開始淹沒,只在相鄰標(biāo)記的盆地間建立水壩,分割出有意義的區(qū)域。因為淹沒過程從最低的盆地開始,所以灰度值越小優(yōu)先級越高。需處理的象素首先從優(yōu)先級高的隊列中取出,當(dāng)高級別隊列為空時,再處理下一級隊列中的象素,因而模擬了淹沒過程??梢钥闯?,水壩算法是邊緣檢測和類似區(qū)域生長過程的混合方法。
水壩分割的過程:圖像二值化→圖像距離化→順序標(biāo)記→對峰值膨脹→建立水壩→顯示圖像。
由于水壩分割是將測地理論的集合運(yùn)算推廣到灰度圖像領(lǐng)域,因此需要將圖像作距離化處理。 距離圖是圖中各個象素的灰度與該象素到凸現(xiàn)或目標(biāo)邊界正比例的圖??紤]一幅包含目標(biāo)和背景的二字圖,如將較大的支付與接近目標(biāo)的象素(與距離成正比)就可得到一幅距離圖。本文運(yùn)用數(shù)學(xué)形態(tài)學(xué)產(chǎn)生距離圖,可迭代的腐蝕二值圖,在每次腐蝕后將所有剩下的象素值加1。距離化算法流程如圖3所示。其中 P(x, y)為象素值 。
圖3 距離化算法流程圖Fig.3 Distance algorithm fl owchart
腐蝕過程:
(1) 二值圖像象素放入 Dst3 中,距離圖像象素放入Dst4 中。
(2) 將圖像從左到右,從上到下開始掃描,取點P(x,y)的象素,若 P(x, y)=0,P 點為背景點,象素值不變;否則,進(jìn)入下一步。
(3) 掃描 P 點的4- 鄰域。若P 的4- 鄰域的象素之不全為0,P 為邊界點,將P 腐蝕掉;若P的4-鄰域的象素全等于0,P為峰值,將P的象素賦為255。
(4) 掃描結(jié)束,跳出循環(huán)。
圖4各個亮點即為算法所取到的峰點值,也就是原始圖像中各個細(xì)胞經(jīng)腐蝕后所剩下的中點值。
圖4 距離圖像Fig.4 Distance image
在取得了距離圖像后,并不能馬上就對其進(jìn)行膨脹操作。這是因為距離圖像中的各峰值的象素值都已經(jīng)被置成了255,要是直接對距離圖像進(jìn)行膨脹操作的話,在判定水壩分割點的時候,算法混亂,無法找到正確的水壩分割點。為此,要先對距離圖像進(jìn)行順序標(biāo)記,使其各峰值的象素值各不相同。
通常對于一幅圖像有多種表示法。例如,陣列表示,行程碼表示和數(shù)結(jié)構(gòu)表示等。順序標(biāo)記算法只需對圖像進(jìn)行順序掃描,而不需要遞歸調(diào)用。掃描方式是從上到下,從左到右逐行掃描。
順序標(biāo)記算法,通常需要兩次掃描,第一次掃描,完成物體不同部位的標(biāo)記;第二次掃描,挑選等價標(biāo)記,把等價標(biāo)記部分與其合并,完成整幅圖像不同物體的標(biāo)記。標(biāo)記程序如圖5所示。(1) 將距離圖像放入內(nèi)存dst4 中,而將標(biāo)記象素放入dst5 中。
圖5 順序標(biāo)記圖Fig.5 Sequence mark graph
(2) 將圖像從左到右,從上到下開始掃描,檢測到第一個亮點A (dst4=255 )時,標(biāo)記成第一個值t=1 ,記錄下其位置后跳出循環(huán)。
(3) 從上一個跳出點開始掃描下一個亮點B,找到B時,判斷B周圍的4- 鄰域中是否有上一次標(biāo)記的值t,若有則將 B 的象素也標(biāo)記為t,若沒有則賦予B新的象素值 t=t+1,遍歷整個圖像后跳出循環(huán)。
(4) 第二次掃描,挑選等價標(biāo)記,按照從小原則,對圖像進(jìn)行修正。
將標(biāo)記好的峰值在二值化圖像得到的目標(biāo)輪廓形狀的范圍中進(jìn)行膨脹操作。使用4- 鄰域進(jìn)行膨脹操作,其流程如圖6所示。
圖6 膨脹操作流程Fig.6 Dilation operation fl owchart
(1) 首先將順序標(biāo)記后的象素值放入內(nèi)存dst5 當(dāng)中,二值化圖像的象素值放入內(nèi)存dst3 當(dāng)中。
(2) 然后將在細(xì)胞輪廓中(dst3 中象素值為 255的點)的未被順序標(biāo)記(dst5 中的背景點,象素值為0 )的點A 進(jìn)行判別:若A的4- 鄰域中有被標(biāo)記的點B,則將A的象素值置為B象素值,若無B,則跳過該點,繼續(xù)判斷下一點知道掃描完一遍。
圖7 分水嶺分割效果圖Fig.7 Effect image of watershed segmentation
(3) 對剛才膨脹后圖像的邊界點C(目標(biāo)圖像的最邊緣的那些點)進(jìn)行判別:若C 周圍的4-鄰域中出現(xiàn)了不為0,且與C的象素值不同的象素出現(xiàn)時,認(rèn)為點C 即為水壩分割點,記錄它的位置,在C 的位置上筑起水壩D(將其象素值置為255 即可)。
(4) 判斷是否能進(jìn)行第二次的膨脹 [尋找是否還有滿足(2)中條件的點,若有,則返回(2),并重復(fù)(2 ),(3 )步];若沒有點可以在膨脹,就跳出循環(huán)。
(5) 將上述幾步中得到的所有點 D 位置的集合在原圖像中顯示,就可以得到分水嶺分割的圖像。分割效果如圖7所示。
上述對數(shù)字圖像進(jìn)行分割處理的大致過程作了介紹,雖然上述處理方法非?;?,但在特定條件下,處理效果還是較令人滿意的。可見,圖像處理技術(shù)在醫(yī)學(xué)中的應(yīng)用是非常有價值的。隨著圖像處理技術(shù)的發(fā)展,以及人工智能技術(shù)的引入,一些具有良好性能的算法不斷應(yīng)用于醫(yī)學(xué)圖像處理[8]。伴隨計算機(jī)技術(shù)的不斷發(fā)展,數(shù)字圖像處理技術(shù)將在醫(yī)學(xué)領(lǐng)域發(fā)揮更大的作用。
[1] 章毓晉. 圖像處理和分析[M]. 北京: 清華大學(xué)出版社, 2009
[2] 胡小鋒, 趙輝. 圖像處理與識別[M]. 北京: 人民郵電出版社, 2004
[3] 付忠良. 圖像閾值選取方法-Otsu 方法的推廣[J]. 計算機(jī)應(yīng)用,2000, 20(5): 37-39.
[4] 岡薩雷斯. 數(shù)字圖像處理[M]. 北京: 中國科技出版社, 2007
[5] 容觀澳. 計算機(jī)圖像處理[M]. 北京: 清華大學(xué)出版社, 2008
[6] 崔屹. 數(shù)字圖像處理技術(shù)與應(yīng)用[M]. 北京: 電子工業(yè)出版社 ,2009
[7] 馬東, 曹培杰, 潘凱麗, 等. 分割重疊細(xì)胞核的方法及比較研究[J]. 北京生物醫(yī)學(xué)工程, 1999, 18(3): 141-146.
[8] 呂鳳軍. 數(shù)字圖像處理編程入門[M]. 北京: 清華大學(xué)出版社,2007