SUSAN邊緣檢測算法性能分析與比較
邊緣是圖像最基本的特征,是圖像分割的第一步。經典的邊緣檢測方法如:Roberts,Sobel,Prewitt,Kirsch,Laplace等方法,基本都是對原始圖像中象素的小鄰域構造邊緣檢測算子,進行一階微分或二階微分運算,求得梯度最大值或二階導數的過零點,最后選取適當的閥值提取邊界。由于這些算法涉及梯度的運算,因此均存在對噪聲敏感、計算量大等缺點。在實踐中,發現SUSAN算法只基于對周邊象素的灰度比較,完全不涉及梯度的運算,因此其抗噪聲能力很強,運算量也比較小。并將SUSAN算法用于多類圖像的邊緣檢測中,實驗證明該算法非常適合含噪圖像的邊緣檢測。
2 SUSAN邊緣檢測簡介
2.1 SUSAN特征檢測原理
如圖1所示,用一個圓形模板在圖像上移動,若模板內象素的灰度與模板中心象素(稱為:核Nucleus)灰度的差值小于一定閥值,則認為該點與核具有相同(或相近)的灰度,由滿足這樣條件的象素組成的區域稱為USAN(Univalue Segment Assimilating Nucleus)。
當圓形模板完全處在圖像或背景中時,USAN區域面積最大(如圖1中的a和b);當模板移向圖像邊緣時,USAN區域逐漸變小(如圖1中c);當模板中心處于邊緣時,USAN區域很小(如圖1中的d);當模板中心處于角點時,USAN區域最小(如圖1中的e)。可以看出,在邊緣處象素的USAN值都小于或等于其最大值的一半。因此,計算圖像中每一個象素的USAN值,通過設定一個USAN閥值,查找小于閥值的象素點,即可確定為邊緣點[1]。
2.2 SUSAN邊緣檢測算法
(1)算法描述
對整幅圖像中的所有象素,用圓形模板進行掃描,比較模板內每一象素與中心象素的灰度值,通過與給定的閥值比較,來判別該象素是否屬于USAN區域,如下式:

式(1)中c(r,r0)為模板內屬于USAN區域的象素的判別函數;I(r0)是模板中心象素(核)的灰度值;I(r)為模板內其他任意象素的灰度值;t是灰度差門限。
圖像中每一點的USAN區域大小可用下式表示:

式(2)中D(r0)為以r0為中心的圓形模板區域。得到每個象素的USAN值n(r0)以后,再與預先設定得門限g進行比較,當n(r0)
(2)模板的選取
由于圖像的數字化,實際上無法實現真正的圓形模板,所以都是采用近似圓代替。但是模板較小時,如果門限選取不恰當,可能會發生邊緣點漏檢的情況。模板也不宜取得太大,否則會增大運算量大,通常可取5×5或37象素模板[1]。本文實驗中均采用的是5×5的模板。
(3)門限t,g的確定
門限g決定了邊緣點的USAN區域的最大值,即只要圖像中的象素的USAN值小于g,該點就被判定為邊緣點。g過大時,邊緣點附近的象素可能作為邊緣被提取出

門限t表示所能檢測邊緣點的最小對比度,也是能忽略的噪聲的最大容限。t越小,可從對比度越低的圖像中提取特征。因此對于不同對比度和噪聲情況的圖像,應取不同的t值[2]。
3 實 驗
在主頻2.3 GHz,內存256 MB的PC機上,分別對SUSAN算法(t=10,g=18)和傳統的Robert算子、Gauss-Laplace算子、Prewitt算子,采用Visal C++編程,對圖2中的3幅灰度測試圖像進行邊緣檢測。圖2中(a)是原始測試圖像,(b)是加入高斯噪聲(μ=0,σ=0.005)的測試圖像,(c)是加入椒鹽噪聲(ρ=O.005)的測試圖像。圖3~圖5分別是對圖2中(a)~(c)三幅圖像的邊緣檢測結果。
由實驗結果可以看出,SUSAN算法具有以下優良性能:
4.1邊緣檢測效果好
無論對直線,還是曲線邊緣,SUSAN算法基本上可以檢測出所有的邊緣,檢測結果較好。雖然實驗中沒有達到一個象素的精度,但這主要是因為對邊緣的兩側都應用了SUSAN算法,對具體的實際應用,可以對背景不再應用SUSAN算法,這樣不但可以達到細化邊緣的目的,而且運算量也大大減少。
評論