1 引 言
邊緣是圖像最基本的特征,是圖像分割的第一步。經典的邊緣檢測方法如: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閥值,查找小于閥值的象素點,即可確定為邊緣點。
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象素模板。本文實驗中均采用的是5×5的模板。
(3)門限t,g的確定
門限g決定了邊緣點的USAN區域的最大值,即只要圖像中的象素的USAN值小于g,該點就被判定為邊緣點。g過大時,邊緣點附近的象素可能作為邊緣被提取出為模板的最大USAN值),可以較好地提取出初始邊緣點。如果要達到單象素的精度,還需進一步剔除多余象素。
門限t表示所能檢測邊緣點的最小對比度,也是能忽略的噪聲的最大容限。t越小,可從對比度越低的圖像中提取特征。因此對于不同對比度和噪聲情況的圖像,應取不同的t值。
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)三幅圖像的邊緣檢測結果。
4 性能比較與分析
由實驗結果可以看出,SUSAN算法具有以下優良性能:
4.1邊緣檢測效果好
無論對直線,還是曲線邊緣,SUSAN算法基本上可以檢測出所有的邊緣,檢測結果較好。雖然實驗中沒有達到一個象素的精度,但這主要是因為對邊緣的兩側都應用了SUSAN算法,對具體的實際應用,可以對背景不再應用SUSAN算法,這樣不但可以達到細化邊緣的目的,而且運算量也大大減少。
而Robert算子和Prewitt算子對部分直線邊緣不能檢測出來,圓的邊緣也有部分漏檢情況;Gauss-Laplace算子雖然基本上可以檢測出所有邊緣,但是他的定位效果較差,邊緣象素較寬。
4.2抗噪聲能力好
由于USAN的求和相當于求積分,所以這種算法對噪聲不敏感,而且SUSAN算法不涉及梯度的計算,所以該算法抗噪聲的性能很好。很明顯,如果考慮有獨立同分布的高斯噪聲,只要噪聲小于USAN函數的相似灰度門限值,噪聲就可被忽略。對局部突變的孤立噪聲,即使噪聲的灰度與核相似,只要局部USAN值小于門限g,也不會對邊緣檢測造成影響。因此SUSAN邊緣檢測算法可以用于被噪聲污染的圖像的邊緣檢測。
而其他的邊緣檢測算法,Robert算子、Prewitt算子、Gauss-Laplace算子,以及應用廣泛的Canny算子,由于這些算法都涉及一階梯度,甚至二階梯度的計算,所以他們的抗噪聲能力較差[2-5],圖4、圖5也證明了這一結論。
4.3算法使用靈活
使用控制參數t和g,可以根據具體情況很容易地對不同對比度、不同形狀的圖像通過設置恰當的t和g進行控制。比如圖像的對比度較大,則可選取較大的t值,而圖像的對比度較小,則可選取較小的t值。所以這種算法非常適用于對某些低對比度圖像或目標的識別。
4.4運算量小,速度快
對1幅256×256的圖像,應用SUSAN算法進行計算,對每一點只需做8次加法運算,共需要做256×256×8次加法。
而對于其他的經典的邊緣檢測算法,如果采用歐式距離作為梯度算子,Sobel算子采用兩個3×3的模板,對每一點需要做9次加法,6次乘法,以及1次開方運算,則共需要做256×256×9次加法運算和256×256×6次乘法運算,以及256×256次開方運算。對Gauss-Laplace算子、Priwitt算子以及Canny算子計算量就更大。
4.5 可以檢測邊緣的方向信息
SUSAN算法實際上還可以檢測邊緣的方向信息。具體算法是,對每一個檢測點計算模板內與該點灰度相似的象素集合的重心,檢測點與該重心的連線的矢量垂直與這條邊緣。
5 結 語
SUSAN邊緣檢測算法直接利用圖像灰度相似性的比較,而不需計算梯度,具有算法簡單、定位準確、抗噪聲能力強等特點。因此,非常適于含噪圖像或低對比度灰度圖像的邊緣檢測。如果進一步減小門限g的數值,SUSAN算法還可以用于角點的檢測。
責任編輯:gt
-
噪聲
+關注
關注
13文章
1118瀏覽量
47369 -
PC
+關注
關注
9文章
2066瀏覽量
154021 -
C++
+關注
關注
22文章
2104瀏覽量
73494
發布評論請先 登錄
相關推薦
評論