王源 胡云琴
摘 要:隨著計算機技術的發(fā)展,邊緣檢測作為圖像處理最為重要的一門技術得到了越來越多的重視,它是圖像分割、圖像識別的前提。文章就邊緣檢測的五種算子進行了比較與分析,得出了最佳邊緣檢測算法。
關鍵詞:邊緣;檢測算子;圖像分割
近年來,由于計算機技術的不斷發(fā)展,圖像處理在各個領域都得到了廣泛應用。邊緣檢測作為一種最為重要的圖像處理技術也得到了重視,所謂邊緣,就是指圖像中恢復變化明顯的區(qū)域,它是邊界檢測的基礎,也是外形檢測的基礎,是圖像分割所依賴的重要特征,而梯度是函數變化的一種度量,一幅圖像可以看作是圖像強度連續(xù)函數的取樣點序列。通過梯度的計算,我們能了解到圖像灰度變化最大的點進而找出圖像的邊緣所在,邊緣檢測就是在有噪聲背景的圖像中確定出目標物邊界的位置,可以把圖像最顯著的特征表示出來,減少工作量,提升效率。經典的邊緣檢測算法有Roberts、sobel、canny、log、prewitt五種算法,文章將就這五種經典算法進行比較與分析。
在了解邊緣檢測之前,我們有必要知道圖像的有關知識,圖像主要分為模擬圖像和數字圖像。模擬圖像是通過某種物理量的強弱變化來記錄圖像上各點的亮度信息的,例如模擬電視圖像;而數字圖像則完全是用數字來記錄圖像亮度信息的。數字圖像的基本單位是像素,它是像素的集合,并且可以用一個矩陣來表示,矩陣的列數代表了圖像的高,行數代表著圖像的寬,矩陣元素對應圖像像素,矩陣元素的值就是像素的灰度值?;叶葓D像是數字圖像的最基本的表達形式,它可以從黑白照片數字化得到,也可以通過彩色照片去色處理得到,因此,灰度圖像只有亮度信息而沒有顏色信息,所以每個像素點都只有一個量化的灰度級,如果用一個字節(jié)來存儲灰度值的話,則取值范圍有0-255共256個灰度級來表示圖像的亮度。彩色圖像的數據不僅包括亮度信息,還包括顏色信息,主要通過RGB模型來表示,即每個像素包括RGB三基色數據,每個基色用一個字節(jié)表示,則共有3個字節(jié),也就是24位,我們說的24位真彩色就是這樣得出來的。一般來說,邊緣檢測的步驟主要有四步包括濾波、增強、檢測、定位。
Roberts算子是最早出現的基于一階微分的算子之一,它是2×2算子模板,簡單直觀,它利用局部差分算子,采用對角線方向相鄰兩像素之差近似梯度幅值尋找邊緣,計算沿45°方向的一階差分。圖像的梯度為兩個45°方向的梯度向量和。我們從圖像的實際效果看,這種算子的邊緣定位比較準確,但是對噪聲很敏感。
Sobel算子是一種離散型差分算子,是現在用的最多的一種算子,它用來運算圖像亮度函數的梯度之近似值,此外它包含兩組3×3的矩陣,分別為橫向和縱向,假設為
將之與圖像做平面卷積,即可分別得出圖像的橫向Gx及縱向Gy亮度差分近似值,那么圖像的每一個像素的橫向及縱向梯度近似值可以用以下公式結合來計算梯度的大小。
G=√Gx2+Gy2
α=arctan(Gy/Gx)
由上面的公式可以看出,如果α等于零,那么代表圖像在該處擁有縱向邊緣。Sobel算子利用像素的左右上下領域的灰度加權算法,根據在邊緣處達到極值這一原理進行檢測,對外界干擾有良好的平滑作用,可以提供較為精確的邊緣方向,那么它的不足之處就是現實物體中有好多物體的顏色和外界環(huán)境很相似,那么單單靠上下兩個檢測不能夠完成檢測的,改進后的sobel算子從0、45、90、135等八個方向對圖像進行逐點計算,取最大值,它對應的模板方向為該像素點的邊緣方向,這樣就很好的避免了兩個方向帶來的誤差。
Prewitt算子和sobel一樣都是一階微分算子,利用像素點領域灰度差或加權值,在邊緣處達到極值這一現象進行檢索,對噪聲具有平滑作用,能濾除一些噪聲,去掉部分偽邊緣,對灰度漸變低噪聲圖像有較好的檢測效果,但同時也平滑了真正的邊緣。不同的是平滑部分的權值有些差異。前者是平均濾波,后者是加權平均濾波,能進一步抑制噪聲的影響,效果更好,但是是以加寬輪廓線為代價換來的。
在圖像中,邊緣可以看做是位于一階導數較大的像素處,因此可以求圖像的一階導數來確定圖像的邊緣,以上sobel、Roberts、prewitt算子都是基于這個思想的。但是這有個最大的弊端就是受噪聲的影響大,因為在噪聲點處一階導數也是極大值。
Log算子即高斯-拉普拉斯算子,它實際上是拉普拉斯算法的改進,在我們前期處理圖像時會用到高斯算法,對圖像進行模糊,這樣就很好的抑制了噪聲,克服了噪聲的影響。所以log算子是先對圖像進行高斯模糊,再求二階導數,二階導數等于零處對應的像素就是圖像的邊緣。
Canny算子邊緣檢測方法是對尋找圖像梯度局部最大值,梯度是用高斯濾波器的導數計算的,canny采用兩個閾值來分別檢測強邊緣和弱邊緣,而且僅當強邊緣和弱邊緣相連時,弱邊緣才會包含在輸出中。總結來說使用canny算子對圖像進行邊緣檢測,首先用高斯濾波器平滑圖像,再用一階偏導的有限差分來計算梯度的幅值和方向,對梯度幅值進行非極大值抑制,最后用雙閥值算法檢測和連接邊緣。當然只要設置閥值,就存在閥值設置多少的問題,設置的數大了就會輪廓不清晰,設置小了則會包含太多細枝末節(jié),優(yōu)點則是不容易被噪聲填充,能檢測出真正的邊緣。
邊緣檢測做為圖像處理的一種技術已經提出很久時間了,今年來研究結果也越來越多,但由于檢測本身所具有的難度,使研究沒有多大突破性的進展,既沒有一種普遍使用的算法,也沒有一種好的通用評價標準。相信隨著技術的發(fā)展、研究的深入,存在的問題會被圓滿解決。
參考文獻
[1]章毓晉.圖像工程[M].清華大學出版社,2005.
[2]曾江源.圖像邊緣檢測常用算子研究[J].現代商貿工業(yè),2009.
[3]陳勝勇.基于OpenCV的計算機視覺技術實現[M].北京:科學出版社,2008.
[4]曹茂永,孫農亮.數字圖像處理[M].北京大學出版社,2007.
指導老師:胡云琴