朱慶華,常 瑩
(北京電子科技職業學院 電信工程學院,北京 100176)
基于數學形態學預處理的Canny邊緣檢測算法
朱慶華,常 瑩
(北京電子科技職業學院 電信工程學院,北京 100176)
為了更好地提取圖像邊緣信息并且抑制噪聲,結合Canny算法及數學形態學在圖像邊緣檢測中的應用,文章設計了一種基于數學形態學預處理的Canny邊緣檢測算法。通過將該算法與一般邊緣檢測算法以及Canny算法的仿真結果進行比較,可以發現該算法在邊緣檢測及消除噪聲方面具有更優的性能。
圖像處理;邊緣檢測;Canny算子;數學形態學;濾波
圖像邊緣是圖像局部特性不連續性(如灰度變換、顏色突變、紋理結構突變等)的反映,它標志著圖像中一個區域的終結和另一個區域的開始,這就決定了邊緣檢測的重要性。圖像邊緣蘊含了豐富的圖像內在信息,它一般位于目標與背景、目標與目標或區域之間。但由于成像過程中的投影、噪聲等導致圖像特征的模糊和變形,從而造成了邊緣檢測的困難性。邊緣提取首先檢測出圖像局部特性的不連續性,然后再將這些不連續的邊緣像素連成完備的邊界。圖像邊緣檢測的任務就是確定和提取邊緣信息,為圖像分析、目標識別和圖像編碼做前期準備。目前,還沒有一種方法是通用的,因此只能從原理、應用和應用效果等方面來深入研究邊緣檢測技術。
傳統的Laplace、Sobel、Roberts等邊緣檢測算法,是利用梯度最大值或二階導數過零點值,選取合適的閾值來獲取圖像邊緣,這些算法盡管實時性好,但是抗干擾性能差,不能有效克服噪聲的影響。與傳統的算法相比,形態學在圖像邊緣檢測中具有獨特的優勢,能夠解決邊緣檢測精度和抗噪聲性能協調的問題。數學形態學(Mathematical Morphology)是一種新的非線性圖像處理和分析理論。它從集合的角度來刻畫和分析圖像,具有一套完整的理論、方法及算法體系。
邊緣檢測分為彩色和灰度兩種圖像邊緣檢測方法,本文只限于對后者的邊緣檢測研究,具體的步驟如圖1所示:

圖1 邊緣檢測步驟
2.1 一階微分算子法
微分算子是最原始、最基本的邊緣檢測算法,對于階躍型邊緣,其灰度變化曲線的一階導數在邊緣處達到極大值,而二階導數則在邊緣處與橫軸零交叉;對于屋脊型邊緣,其灰度變化曲線的一階導數在邊緣處與橫軸零交叉,而二階導數則在邊緣處達到負的極大值。在求邊緣的導數時,需要對每個像素位置計算,在實際中常用模板卷積來近似計算。經典的微分算子有以下幾方面。
2.1.1 Sobel算子
該算子根據像素點上下、左右鄰點灰度加權差,在邊緣處達到極值這一現象檢測邊緣。Sobel算子在空間上易于實現,對噪聲有平滑作用,提供較為精確的邊緣方向信息,邊緣定位的精度不夠高。當對精度要求不高時,這種方法比較常用。
2.1.2 Prewitt算子
它利用像素點鄰點灰度差來檢測。如果在每個點噪聲都是相同的情況下,使用Prewitt算子效果較好。如果靠近邊緣的噪聲是沿著邊緣的二倍,則使用Sobel算子效果較好。也就是說算子的好壞取決于噪聲的結構。
2.1.3 Roberts算子
此算子采用對角線方向相鄰兩像素差近似梯度幅值來檢測邊緣,但是對有一定傾角的斜邊緣提取效果不理想。該算子對于低噪聲且具有陡峭邊緣的圖像有較好的檢測效果。
2.2 二階微分算子
2.2.1 Laplace算子
該算子為二階微分算子,利用邊緣點處二階導數出現零交叉來檢測邊緣,各向同性,對灰度突變敏感,定位精度高,對噪聲也敏感,不能獲得邊緣方向信息。
2.2.2 LOG算子
邊緣檢測技術中較為成熟的方法是LOG算子,該算子是把高斯平滑濾波器和拉普拉斯銳化濾波器結合。由于Laplace算子對圖像中的噪聲相當敏感,所以,實際中很少直接應用于邊緣檢測。
2.2.3 Canny算法分析
經典的邊緣檢測算子如Roberts算子、Prewitt算子、Sobel算子、Laplace算子等對噪聲都極度敏感,適合于含噪聲少、不太復雜的圖像。Canny對過去的一些邊緣檢測方法和應用做了總結,在此基礎上提出了邊緣檢測的三個準則并將其用數學的形式表示出來,用最優化數值方法,得到一個較好的實用邊緣檢測算法。
Canny提出的三個邊緣檢測準則如下:
(1)好的檢測性能,即不漏檢真實邊緣,也不把非邊緣點作為邊緣點檢出,使輸出的信噪比最大。故要具有好的邊緣檢測性能等價于求f(x)使得檢測后的圖像在邊緣點的信噪比SNR最大化,經過f(x)濾波后,邊緣點處的響應為:
(1)
其中,G(-x)表示圖像邊函數,f(x)表示濾波器函數,σ表示噪聲的均方差。
(2)高的定位精度,即判斷檢測到的邊緣點的位置盡可能地靠近實際邊緣的中心位置。定位準則的表達式如下:
(2)
其中,G′(-x)和f ′(-x)分別代表G(-x)和f(x)的導數,該準則就是通過尋找濾波函數,使得Location盡量大。
(3)盡量少的邊緣響應次數,即最大限度抑制偽邊緣的出現。要保證只有一個像素響應,檢測算子的脈沖響應導數的零交叉點平均距離D(f)滿足:

(3)
通過此準則,就能保證對每個邊緣有唯一的響應,得到單像素邊緣。將以上準則綜合考慮,得到Canny算子的近似實現為:
J(f) =SNR(f)·Location
(4)
通過對上式的求解,便可以求得圖像的邊緣點。邊緣點
位于圖像被高斯平滑后的梯度值的極大值點。求解上式的詳細算法過程如下:
(1)先用二維高斯函數的一階導數對圖像進行平滑濾波,以消除圖像噪聲。
高斯函數如下所示:
(5)
n表示高斯濾波器窗口大小。
(2)對濾波后圖像中的每個像素,計算梯度幅值和梯度方向。
使用微分算子求出梯度方向上的偏導數:
(6)

(3)對梯度幅值進行非極大值抑制。
沿幅角方向檢測模值的極大值點,即邊緣點,遍歷8個方向圖像像素,把每個像素偏導值與相鄰像素的模值比較,取其MAX值為邊緣點,置像素灰度值為0。
(4)雙閾值檢測。
由于單閾值處理時,合適的閾值選擇較困難,常常需要采用反復試驗,因此采用雙閾值檢測算法,但是也損失了有用的邊緣信息。較小閾值檢測得到的圖像1則保留著較多的邊緣信息,以此為基礎,補充圖像2中的丟失的信息,連接圖像邊緣。Canny算法的流程圖如圖2所示。

圖2 Canny算法流程
從實驗結果中可以看出,相比一般邊緣檢測算法和Canny檢測算法而言,利用基于數學形態學預處理的Canny算法進行邊緣檢測,可以得到更好的圖像邊緣信息,且定位準確。在邊緣檢測的實際應用中,對于圖像細節的要求不一而足。本算法在處理圖像時,一方面能夠更加完善地保留圖像邊緣信息,另一方面根據理論分析,噪聲也得到了更強的抑制;但是對于細節的處理尚有不足之處。
通過對仿真結果的主觀評價,本算法性能的提升得以體現,但由于對邊緣檢測性能的提升與對噪聲的抑制很難同時達到,本文邊緣檢測的優良性與對噪聲的進一步抑制尚缺乏一組客觀的評價指標來進行定量驗證與分析。因此在后續的結合數學形態學的邊緣檢測研究中,我們會在以下兩方面作深入研究:一是將圖像細節特征的保留作為一個指標來評價算法優劣;二是選取合適的客觀評價指標定量分析算法的優劣,使得數學形態學在邊緣檢測中的應用更加有效。
林卉,趙長勝,舒寧.基于Canny算子的邊緣檢測及評價[J].深圳大學學報:理工版,2005,22(2):149-153.
10.13939/j.cnki.zgsc.2016.49.085
朱慶華(1972—),男,北京人,北京電子科技職業學院電信工程學院講師,學士。研究方向:多媒體技術、物聯網技術等;常瑩(1972—),女,北京人,北京電子科技職業學院電信工程學院講師,碩士。研究方向:軟件工程、移動終端技術。