改進(jìn)邊緣檢測(cè)算法在醫(yī)學(xué)圖像處理中的應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:圖像邊緣檢測(cè)在醫(yī)學(xué)中有很重要的應(yīng)用,針對(duì)此提出了一種新的邊緣檢測(cè)方法,首先采用canny算子對(duì)圖像進(jìn)行邊緣檢測(cè),然后對(duì)檢測(cè)后的圖像輪廓跟蹤。實(shí)驗(yàn)表明,與傳統(tǒng)的邊緣檢測(cè)算法相比,這種算法能更好地提取圖像中目標(biāo)物體的邊緣,減少檢測(cè)邊緣斷裂現(xiàn)象,具有很好的應(yīng)用價(jià)值。
關(guān)鍵詞:canny算子;邊緣檢測(cè);輪廓跟蹤
0 引言
邊緣檢測(cè)是圖像處理中的重要內(nèi)容。圖像邊緣是圖像局部特性不連續(xù)性(灰度突變、顏色突變、紋理結(jié)構(gòu)突變等)的反映,它標(biāo)志著一個(gè)區(qū)域的終結(jié)和另一個(gè)區(qū)域的開(kāi)始。在實(shí)際圖像處理問(wèn)題中,圖像的邊緣作為圖像的一種基本特征,經(jīng)常被應(yīng)用到較高層次的圖像應(yīng)用中去,同時(shí)它在圖像識(shí)別、圖像分割、圖像增強(qiáng)以及圖像壓縮等領(lǐng)域中有較為廣泛的應(yīng)用。圖像邊緣檢測(cè)的手段多種多樣,大的框架有兩種,一是傳統(tǒng)的基于邊緣檢測(cè)算子的檢測(cè)方法;另外一種是基于小波的多尺度邊緣測(cè)算法。然而小波變換在用于處理圖像時(shí)并不是最佳的,因?yàn)榛谛〔ㄗ儞Q的圖像邊緣檢測(cè)方法提取的邊緣只具有有限的方向,而自然圖像邊緣的方向可能是任意的,因而小波邊緣提取方法提取的邊緣不能最佳地逼近圖像邊緣;傳統(tǒng)的Robert、Sobel、Prewitt、Kirach和Laplacian算子對(duì)噪聲較為敏感,在處理實(shí)際圖像中效果并不理想。通過(guò)研究,本文提出了一種基于canny邊緣檢測(cè)算子,結(jié)合輪廓跟蹤的方法,在物體邊緣得到增強(qiáng)、對(duì)比度得到改善、噪聲得到有效抑制的同時(shí),很好地解決了使用傳統(tǒng)的邊緣檢測(cè)算子在邊緣檢測(cè)過(guò)程中帶來(lái)的檢測(cè)邊緣斷裂的問(wèn)題,從而能夠保證檢測(cè)到的邊緣連續(xù)、單一、清晰,是一種實(shí)用的圖像處理方法。最后把改進(jìn)后的算法應(yīng)用到實(shí)際醫(yī)學(xué)圖像邊緣檢測(cè)中,并與傳統(tǒng)邊緣檢測(cè)算子的檢測(cè)效果比較,從而得出結(jié)論。
1 Carmy算子的基本原理
1.1 平滑圖像
Canny算子選用合適的一維高斯函數(shù),分別按行和列對(duì)圖像f(x,y)進(jìn)行平滑去噪,這相當(dāng)于對(duì)圖像信號(hào)的卷積。所選的高斯函數(shù)為:
式中:σ為高斯曲線標(biāo)準(zhǔn)差,控制著平滑程度。
1.2 計(jì)算梯度的幅值和方向
Canny算子采用2×2鄰域一階偏導(dǎo)的有限差分來(lái)計(jì)算平滑后的數(shù)據(jù)陣列I(x,y)的梯度幅值和梯度方向。x和y方向偏導(dǎo)數(shù)的2個(gè)陣列Px[i,j]和Py[i,j]分別為:
像素的梯度幅值和梯度方向分別為:
1.3 獲取邊緣
為了提取單像素寬邊緣,必須細(xì)化梯度幅值圖。在梯度幅值圖像中,M[i,j]的極大值所在位置附近會(huì)產(chǎn)生屋脊帶,只有細(xì)化這些屋脊帶才能精確地確定邊緣的位置,僅保留幅值局部變化最大的點(diǎn),這一過(guò)程叫做非極大值抑制。在非極大值抑制過(guò)程中,Canny算子使用3×3大小,包含8個(gè)方向的鄰域?qū)μ荻确店嚵蠱[i,j]的所有像素沿梯度方向進(jìn)行梯度幅值的插值,在每一個(gè)點(diǎn)上,鄰域的中心像素M[i,j]與沿梯度方向的2個(gè)梯度幅值的插值結(jié)果進(jìn)行比較,如果鄰域中心點(diǎn)的幅值M[i,j]不比梯度方向上的2個(gè)插值結(jié)果大,則將M[i,j]對(duì)應(yīng)的邊緣標(biāo)志位賦值為0,這一過(guò)程把M[i.j]寬屋脊帶細(xì)化為一個(gè)像素寬,并且保留了屋脊的梯度幅值。
對(duì)經(jīng)過(guò)非極大值抑制和梯度直方圖分類的子圖像N[i,j]分別使用高、低2個(gè)閾值thrA和thrl,將梯度小于閾值的像素灰度置為0,分割得到2個(gè)閾值邊緣圖像TH[i,j]和TL[i,j]。由于圖像TH[i,j]是由高閾值得到,因此偽邊緣很少,但TL[i,j]保留邊緣信息較為全面,但也含有一些偽邊緣。因此以圖像TH[i,j]為基礎(chǔ),圖像TL[i,j]為補(bǔ)充獲得相對(duì)較為全面的邊緣。
1.4 輪廓跟蹤或輪廓提取
在對(duì)圖像進(jìn)行canny邊緣檢測(cè)后,可能會(huì)出現(xiàn)某些檢測(cè)邊緣斷裂、不連續(xù)的現(xiàn)象,為了解決這個(gè)問(wèn)題,使獲得的目標(biāo)檢測(cè)物體的邊緣能夠連續(xù)并且去除多余的偽邊緣,在邊緣檢測(cè)后,再對(duì)圖像進(jìn)行邊界跟蹤,便可使這一問(wèn)題得以很好地改善。
對(duì)于二值圖像,輪廓提取的基本方法是掏空內(nèi)部點(diǎn),即如果原圖像中有一點(diǎn)為黑,且其他相鄰的8個(gè)點(diǎn)都為黑,則將該點(diǎn)刪除。
本文借鑒二值圖像輪廓跟蹤方法,即將每一點(diǎn)與其相鄰的8個(gè)點(diǎn)作比較。具體方法為:(1)先找到第一個(gè)邊界像素。按從左到右、從下到上的順序搜索,找到的第一個(gè)白點(diǎn)一定是最左下方的邊界點(diǎn),記為A0,它的右、右上、上、左上四個(gè)相鄰點(diǎn)中至少有一個(gè)是邊界點(diǎn),記為B0,從B0開(kāi)始找起,按右、右上、上、左上、左、左下、下、右下的順序找8個(gè)相鄰點(diǎn)中的邊界點(diǎn)C0,如果C0就是A0點(diǎn),則表明已經(jīng)轉(zhuǎn)了一
圈,結(jié)束;否則從C0點(diǎn)繼續(xù)找,直到找到A0為止;(2)判斷是否邊界點(diǎn):如果它的8個(gè)相鄰點(diǎn)都不是白點(diǎn),則它即為邊界點(diǎn)。對(duì)于邊界跟蹤來(lái)說(shuō),跟蹤后產(chǎn)生的輪廓邊緣寬度只有一個(gè)像素,實(shí)現(xiàn)了邊緣像素點(diǎn)單一、清晰,并很好地去除了偽邊緣點(diǎn)。
2 實(shí)驗(yàn)結(jié)果對(duì)比
為驗(yàn)證本文算法,以醫(yī)學(xué)圖像為例,與傳統(tǒng)邊緣檢測(cè)算子進(jìn)行對(duì)比,實(shí)驗(yàn)表明,本文提出的方法具有很好的邊緣檢測(cè)效果,對(duì)比結(jié)果如圖1~圖5。
3 結(jié)果分析
本文采用將圖像先進(jìn)行Canny邊緣檢測(cè),再進(jìn)行輪廓跟蹤的處理方法,一方面能夠解決傳統(tǒng)邊緣檢測(cè)算法所帶來(lái)的邊緣斷裂問(wèn)題,而且易于理解和實(shí)現(xiàn),具有較好的檢測(cè)效果。但另一方面,對(duì)圖像分別進(jìn)行兩次處理,降低了圖像處理的效率,在實(shí)時(shí)處理要求較高的應(yīng)用環(huán)境,此算法還需進(jìn)一步改進(jìn)。