姜艷姝,王增光
(哈爾濱理工大學(xué)自動化學(xué)院,黑龍江 哈爾濱 150080)
計算機輔助診斷技術(shù)運用了多種學(xué)科的知識,例如醫(yī)學(xué)圖像處理技術(shù)等。通過計算機的收集、處理并分析原始圖像,輔助醫(yī)生發(fā)現(xiàn)患者可能存在的病變組織。同時減少由于醫(yī)生主觀判斷失誤導(dǎo)致的誤診,變相的提高了診斷的準確率[2]?,F(xiàn)在醫(yī)學(xué)影像處理領(lǐng)域中提到的CAD技術(shù)與正常的計算機輔助檢測并不完全相同。計算機輔助檢測的最終目的是為了檢測。只需要對有異樣的部位進行標記提醒,并進行一定量基礎(chǔ)的圖像處理。當前常說的計算機輔助技術(shù)(CAD)技術(shù)與上面所說的計算機輔助檢測并不相同。它的重點更加偏向于后的診斷步驟。所以,計算機輔助檢測嚴格來說僅僅是正常的計算機輔助診斷系統(tǒng)的前半部分。后者的最終目的是檢測。同時,前者也是后者不可或缺的一部分。CAD可以給醫(yī)生一個初步的診斷,是醫(yī)生最終診斷病人病情的一個重要依據(jù)[3]。在肺癌診斷方面,計算機輔助診斷最主要準備工作就是將肺結(jié)節(jié)從拍攝得到的肺部CT中提取出來,并對其大小,位置,形狀等生物學(xué)特征進行分析比較。在提取肺結(jié)節(jié)時,需要在原始CT中利用邊緣檢測算法檢測出肺結(jié)節(jié)的邊緣。
邊緣提取根據(jù)利用不同的算子,提取出的圖像效果也隨之有不同的特點。比如在醫(yī)學(xué)影像中的三種最常用的方法: Sobel算子,拉普拉斯算子,以及Canny算子[4]。Sobel算子的好處很明顯。這種算子更加善于處理噪聲多、灰度漸變的圖像。但同時伴隨著圖像檢測出的邊緣由多個像素組成。最終得到并不十分準確的邊緣定位[5]。所以這種算子最好只在對精度要求比較低時采用。Laplacian算子是一種無方向性的二階導(dǎo)數(shù)算子??梢凿J化任意方向的界限。但由于其抗噪聲干擾能力較低,并沒有在檢測邊緣中普及[6]。Canny方法相對于其它算子最大的優(yōu)點在于檢測弱邊緣的能力。其可以真正的得到圖像中的弱邊緣。并同時具有著很強的抗噪聲干擾能力。通過一個高,一個低的閾值得到有真正的弱邊緣,排除掉不為真的弱邊緣。將真的弱邊緣與強邊緣一同顯示在圖像上。最后通過非極大值抑制得到分割邊緣[7]。因分割CT圖片時噪聲對分割影像較大,所以采用了噪聲抗干擾能力較強的Canny算法,并根據(jù)其高斯濾波以及高低雙閾值需要人為設(shè)定參數(shù)的弊端,采用了中值濾波和迭代法閾值選擇算法分別得到所需要的閾值。
Canny邊緣檢測算法最早在1986年被提出。在CT室中存在著復(fù)雜的電磁干擾信號,這直接導(dǎo)致了拍攝出的CT影響有著明顯的干擾噪聲。現(xiàn)在Canny算法依然在醫(yī)學(xué)影像這個學(xué)科中大面積使用,正是因為此算法具有比其它算法抗干擾能力更強的特點[8]。
1)利用高斯濾波器平滑噪聲
構(gòu)造出高斯濾波器,并使用該濾波器與需要處理的圖像進行卷積操作??傻玫浇?jīng)過高斯平滑之后的圖像S(x,y)。其中的高斯濾波器是通過二維高斯函數(shù)G(x,y)進行構(gòu)造得到的[9]。
(1)
S(x,y)=G(x,y)?f(x,y)
(2)
其中?表示卷積運算。σ表示高斯濾波函數(shù)的標準差。σ會影響高斯濾波器對原始圖像定位的準確性[10]。
2)計算圖像中每個像素點的梯度強度和方向
傳統(tǒng)Canny算法因為需要計算8個方向的梯度,所以選擇采用4個梯度算子來分別計算0° 、45° 、90° 、135° 四個正負方向的梯度[11]。其中由邊緣差分算子可以得到0° 與90° 方向的差分Gx和Gy,得到Gx和Gy后這樣就可以計算獲得梯度模和方向
(3)
(4)
其中,G為梯度,θ為方向。
3)非極大值抑制
對圖像進行梯度計算后的邊緣依舊不滿足分割要求。初步的目標是在一個梯度方向上有且僅有一個局部最大值的梯度響應(yīng),其余的梯度被認為不需要的梯度,所以抑制為0。將當前像素的梯度強度與相同梯度方向以及相反的梯度方向的兩個像素進行強度對比。如果當前像素的梯度強度是參與比較的像素中最大的,即當前像素為最銳利的部分。則認為該像素點是真邊緣點,否則抑制此像素點[12]。
4)應(yīng)用雙閾值確定真實的和可能的邊緣
步驟3)中得到的邊緣中存在未被正確檢測出的偽邊緣。操作時采用單閾值分割操作較為困難,所以Canny采用了滯后閾值操作。利用了一高一低的雙閾值。如果高閥值小于經(jīng)過抑制的邊緣像素點梯度值,則認為這一像素點屬于強邊緣點。如果抑制后的邊緣像素點梯度值介于一高一低兩個閾值之間,則被認為屬于弱邊緣點。最后直接抑制掉抑制后的邊緣像素點梯度值仍然不高于低閥值的像素點[13]。
5)滯后邊界跟蹤
上一步中利用雙閾值得到了強弱兩種邊緣點,其中的強邊緣點可以直接當作需要保留的邊緣。而弱邊緣點則需要進一步判定其是否為真邊緣。為使得結(jié)果更加準確,去掉假邊緣點成為了必須操作。
Canny算法中,如果一個弱邊緣是真實的邊緣,那么這個像素點一定與真實的邊緣相接。而強邊緣被認為一定是真正的邊緣,所以如果這個弱邊緣點與真正的邊緣點相連,也就是與強邊緣點相連,那么則認為這個邊緣點也是真正邊緣的一部分[14]。
本文針對分割肺結(jié)節(jié)時傳統(tǒng)Canny算法分割時存在的缺陷,對Canny分割算法進行了改進。在濾波閾值自適應(yīng)的基礎(chǔ)上采用迭代法閾值選擇算法得到適合的高低雙閾值,增強整體算法的自適應(yīng)能力。整體流程圖如圖1所示。
使用中值濾波,需要取出以該元素為中心一定范圍的窗口像素中所有像素的平均值。并將該值作為新的像素點的值。這樣做的優(yōu)勢在于可以在兼顧保留像素信息的基礎(chǔ)上不對原圖像做出較大影響。中值濾波器受濾波窗口大小影響較大。窗口越小(不能小到一階,通常為三階),越能更大程度上保護圖像中的一些細節(jié)信息不被當作噪聲過濾掉,但同時對過濾真正噪聲的效果就會降低。與之相反,窗口尺寸越大,噪聲過濾真正噪聲的效果越好,但同時會比小濾波窗口處理的圖像更加模糊,丟失一部分圖像細節(jié)[15]。
本文選用自適應(yīng)中值濾波器的目的就是需要系統(tǒng)整體更加具有姿勢影響??梢愿鶕?jù)不同情況下設(shè)好的不同條件,動態(tài)地改變中值濾波器的窗口尺寸。助理效果才可以同時兼顧去噪聲和保護細節(jié)。本文以初始化模板窗口為三階舉例。
1)設(shè)濾波器模板作用范圍為Sxy,將模板窗口中的像素遍歷得到模板內(nèi)最大像素Zmax、最小像素Zmin、平均像素Zmed。
2)判斷是否滿足Zmin 圖1 分割肺結(jié)節(jié)時的改進算法流程圖 本文利用Sobel算子計算梯度值。Sobel算子的原理就是對傳進來的圖像像素做卷積運算。隨即對新得到的像素灰度值做閾值運算,由此便可確定邊緣信息。旋轉(zhuǎn)方向模板如圖2。 圖2 四方向梯度模板 本文取x軸和y軸方向。則可得Sobel卷積因子 (5) (6) (7) 為提升效率,通常使用不開方的近似值: |G|=|Gx|+|Gy| (8) 其中,Gx和Gy分別代表橫向和縱向檢測的灰度值。G為標記點灰度值。 閾值分割是通過使用設(shè)置的閾值來分離需要保留圖像和干擾圖像。通常,由于存在噪聲,因此難以確定最佳閾值[16]。本文提出了一種迭代分割閾值算法。具體步驟如下。 得到原始圖像的灰度圖之后,對其進行灰度值收集。由收集到的灰度值可以得到灰度圖中的Zmax、Zmin以及整幅圖片的平均灰度值。將下一步圖像分割的最初閾值設(shè)定為之前的平均灰度值。 (9) 其中T為灰度圖初始分割閾值,Zmax為最大灰度值,Zmin為最小灰度值。 1)以上一步得到的T為基礎(chǔ),把圖像分割為分別高于和低于T的部分H1和H2。接著求取H1和H2的灰度平均值Th、Tl。隨即可求得H1和H2的共同平均值。 (10) (11) 2)比較初始閾值與H1和H2共同的均值。假如兩個值的絕對值沒有超出允許誤差范圍,則終止迭代。上一步求得的H1和H2就是最佳的高、低閾值。假如不滿足終止條件,將下一輪圖像閾值分割的新閾值設(shè)置為H1和H2共同的均值,進行新一次的迭代過程,直至滿足終止條件。 (12) 3)在迭代算法結(jié)束之后,將最終得到的閾值Th、Tl作為雙閾值分割的高低閾值。 圖3 鏈碼方向 將一張肺部CT分別利用三種不同濾波進行處理,處理結(jié)果如圖4所示。 圖4 不同濾波結(jié)果對比 從上圖4可以看出,與本文采用的自適應(yīng)中值濾波相比,另兩種濾波的效果并沒有明顯的優(yōu)勢。并且自適應(yīng)中值濾波更具自適應(yīng)性。綜上所述,在本文條件下更適合使用自適應(yīng)中值濾波。 對圖4得到的平滑濾波后的肺部CT圖像進行梯度運算。本文運用Sobel算子。分別計算x、y軸及x和y軸方向梯度并進行非極大值抑制結(jié)果如圖5所示。 圖5 不同濾波結(jié)果對比 對得到的圖5利用迭代法閾值選擇算法自動得到高低雙閾值,并進行滯后邊界跟蹤運算。最終得到分割出的肺實質(zhì)如圖6。 圖6 傳統(tǒng)算法與改進算法提取肺實質(zhì)結(jié)果對比 對上述改進分割算法得到的肺實質(zhì)二值圖像利用Freeman技術(shù)統(tǒng)計得到所有肺結(jié)節(jié)封閉曲線的直徑、周長、體積等參數(shù)。在病理特征中,肺癌確診患者的肺結(jié)節(jié)一般直徑不小于8mm。與正常人類的肺結(jié)節(jié)直徑大小小于8mm有明顯區(qū)別。所以需要將直徑不小于8mm的所有肺結(jié)節(jié)標記,并作為疑似的病變結(jié)節(jié)。 其中除軀干輪廓外最大的一個封閉區(qū)域認為是氣管,不參與統(tǒng)計處理。疑似肺結(jié)節(jié)統(tǒng)計如表1。 表1 疑似肺結(jié)節(jié)統(tǒng)計表 最終將表1中得到的所有疑似肺結(jié)節(jié)提供給醫(yī)生作進一步診斷。 本文運用了改進的Canny算法進行肺癌輔助診斷,可在分割準確清晰的基礎(chǔ)上增強系統(tǒng)自適應(yīng)性。由仿真結(jié)果可知基于本文改進算法的肺癌輔助診斷技術(shù)可以較為準確的提供輔助診斷結(jié)果。3.2 梯度計算
3.3 迭代法閾值選擇算法獲得高低閾值
3.4 鏈碼技術(shù)獲得肺結(jié)節(jié)的生理特征
4 實驗過程與分析
5 仿真結(jié)果分析
6 結(jié)論