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