王智文
(廣西工學(xué)院 計(jì)算機(jī)工程系,柳州 545006)
邊緣檢測(cè)是圖像處理和計(jì)算機(jī)視覺中的基本問題和重要環(huán)節(jié),尤其是特征提取中的一個(gè)重要研究領(lǐng)域。圖像邊緣檢測(cè)可以大幅度地減少數(shù)據(jù)量,并且可以剔除與圖像處理不相關(guān)的信息,保留圖像重要的結(jié)構(gòu)屬性。然而,由于實(shí)際景物圖像的邊緣往往是各種類型的邊緣及它們模糊化后結(jié)果的組合,且實(shí)際圖像信號(hào)存在著噪聲[1]。噪聲和邊緣都屬于高頻信號(hào),很難用頻帶做簡(jiǎn)單取舍。所以,邊緣檢測(cè)又是圖像處理中的一個(gè)難題[2]。目前常用的邊緣檢測(cè)算法沒有哪一種具有絕對(duì)的優(yōu)越性。因此,對(duì)各種邊緣檢測(cè)算法的性能進(jìn)行比較分析,根據(jù)圖像邊緣的特征和噪聲的特征以及噪聲在圖像中的分布情況選擇比較合理的邊緣檢測(cè)算法來(lái)進(jìn)行邊緣檢測(cè)顯得尤為重要。本文具體比較研究了7種常用的邊緣檢測(cè)算子的特點(diǎn)和性能。
邊緣是指圖像中周圍像素灰度有階躍變化或屋頂變化的那些像素的集合[3]。在圖像處理過程中,邊緣能大大地減少要處理的圖像信息而又可以保留圖像中物體的形狀信息。邊緣檢測(cè)的目的是為了標(biāo)識(shí)數(shù)字圖像中亮度變化明顯的點(diǎn)。邊緣檢測(cè)可以劃分為兩類:基于查找和基于零穿越的邊緣檢測(cè)?;诓檎业姆椒ㄍㄟ^尋找圖像一階導(dǎo)數(shù)中的最大和最小值來(lái)檢測(cè)邊界,通常是將邊界定位在梯度最大的方向?;诹愦┰降姆椒ㄍǔ2捎肔aplacian過零點(diǎn)或者非線性差分表示的過零點(diǎn)來(lái)進(jìn)行邊緣檢測(cè)[4]。對(duì)常用的七種邊緣檢測(cè)算法簡(jiǎn)介如下[5]:
Zero-Cross用兩個(gè)不同參數(shù)的高斯函數(shù)的差來(lái)近似地對(duì)圖像作卷積操作,通過尋找圖像的二階導(dǎo)數(shù)零穿越來(lái)尋找圖像邊界,從而檢測(cè)出圖像的邊緣點(diǎn)。
Roberts算子采用對(duì)角線方向相鄰兩像素之差近似的梯度幅值來(lái)檢測(cè)邊緣。算子定位比較精確,但由于不包括平滑,所以對(duì)于噪聲比較敏感,檢測(cè)水平和垂直邊緣的效果好于斜向邊緣,定位精度高,對(duì)噪聲敏感。
Sobel算子根據(jù)圖像的像素點(diǎn)上下、左右鄰點(diǎn)灰度加權(quán)差在邊緣處達(dá)到極值這一現(xiàn)象來(lái)檢測(cè)邊緣。算子對(duì)噪聲具有平滑作用,能提供較為精確的邊緣方向信息,邊緣定位精度不夠高。當(dāng)對(duì)精度要求不是很高時(shí),是一種較為常用的圖像邊緣檢測(cè)方法。
Prewitt算子邊緣檢測(cè)的思路與Sobel微分算子的思路類似,是在一個(gè)奇數(shù)大小的模板中定義其微分運(yùn)算。算子對(duì)噪聲具有平滑作用,定位精度也不夠高。
Laplacian算子是二階微分算子,利用邊緣點(diǎn)處二階導(dǎo)函數(shù)出現(xiàn)零交叉原理來(lái)檢測(cè)圖像的邊緣。算子不具方向性,對(duì)灰度突變比較敏感,定位精度高,同時(shí)對(duì)噪聲比較敏感,且不能獲得邊緣方向等信息。
Guassian濾波器方法通過檢測(cè)二階導(dǎo)數(shù)過零點(diǎn)來(lái)判斷圖像邊緣點(diǎn)。Guassian濾波器中的σ正比于低通濾波器的寬度,σ越大,平滑作用越顯著,去除噪聲效果越好,但圖像的細(xì)節(jié)損失也越大,檢測(cè)出來(lái)的圖像邊緣精度也就越低。由于在邊緣定位精度和消除噪聲級(jí)之間存在著矛盾,所以應(yīng)該根據(jù)具體問題對(duì)噪聲水平和邊緣點(diǎn)定位精度要求適當(dāng)選取σ。
Canny方法則是以一階導(dǎo)數(shù)為基礎(chǔ)來(lái)判斷圖像的邊緣點(diǎn)。它是一階傳統(tǒng)微分中檢測(cè)階躍型邊緣效果最好的算子之一。它比Roberts 算子、Sobel 算子和Prewitt 算子極小值算法的去噪能力都要強(qiáng),并能產(chǎn)生較細(xì)的邊緣,但它也容易平滑掉一些邊緣信息。
通過對(duì)經(jīng)典邊緣檢測(cè)算子的實(shí)驗(yàn)結(jié)果得到:閾值自動(dòng)賦值時(shí),7種算法都能夠檢測(cè)出圖像邊緣;而Laplacian和Zero-Cross算子因其所得幅值相對(duì)小,當(dāng)選擇較大的閾值時(shí),邊緣信息可能部分或全部丟失;Roberts算子和Laplace算子定位精度較高;Roberts算子檢測(cè)垂直和水平方向的階躍邊緣、線的效果比檢測(cè)斜向階躍邊緣、線的效果好,保留住了矩形的角點(diǎn),而Sobel和Prewitt算子則不及,尤其是Prewitt算子基本丟失了角點(diǎn)信息;Sobel和Prewitt算子檢測(cè)斜向階躍邊緣、線的效果較好,保留住了三角形的角點(diǎn)。由此得出以下結(jié)論:
1)Roberts算子簡(jiǎn)單直觀,Laplacian算子利用二階導(dǎo)數(shù)零交叉特性檢測(cè)邊緣。Roberts算子和Laplacian 算子定位精
度較高,但對(duì)噪聲較為敏感。Laplacian算子只能獲得邊緣位置信息,不能得到邊緣的方向等信息。
2)Prewitt 算子和 Sobel算子都是一階的微分算子,而前者是平均濾波,后者是加權(quán)平均濾波且檢測(cè)到的圖像邊緣可能大于兩個(gè)像素。這兩者對(duì)灰度漸變低噪聲的圖像有較好的檢測(cè)效果,但是對(duì)于混合多復(fù)雜噪聲的圖像,處理效果就不理想了。Prewitt 算子和Sobel算子對(duì)噪聲具有較好的平滑作用,能濾除一些噪聲,去掉部分偽邊緣,但同時(shí)也平滑了真正的邊緣;定位精度不高。Sobel算子可提供最精確的邊緣方向估計(jì)。
3)Sobel算子、Prewitt算子檢測(cè)斜向階躍邊緣效果較好,Roberts算子檢測(cè)水平和垂直邊緣效果較好。
4)Roberts算子檢測(cè)垂直和水平方向的階躍邊緣、線的效果比檢測(cè)斜向階躍邊緣、線的效果好,保留住了矩形的角點(diǎn),而Sobel和Prewitt算子則不及,尤其是Prewitt算子基本丟失了角點(diǎn)信息。而Sobel和Prewitt算子檢測(cè)斜向階躍邊緣、線的效果較好,保留住了三角形的角點(diǎn)。
5)Guassian濾波器方法比Canny方法具有更好的邊緣檢測(cè)效果。Zero-Cross濾波器方法沒有解決如何組織不同尺度濾波器輸出的邊緣圖為單一的、正確的邊緣圖像的具體方法。
6)Canny算子對(duì)各種噪聲圖像最敏感。
7)Gaussian邊緣檢測(cè)算子對(duì)邊緣變化突出處檢測(cè)效果明顯,且不容易受噪聲干擾。
8)Sobel、Prewitt、Roberts邊緣檢測(cè)算子檢測(cè)圖像邊緣時(shí)易出現(xiàn)“削頂”現(xiàn)象,即對(duì)圖像頂部檢測(cè)困難。
9)對(duì)比斑點(diǎn)、高斯、泊松、椒鹽噪聲圖像,椒鹽噪聲圖像對(duì)各種檢測(cè)算子的檢測(cè)效果影響最大,泊松噪聲圖像對(duì)各種檢測(cè)算子的檢測(cè)效果影響最小。
通過對(duì)檢測(cè)結(jié)果進(jìn)行比較得到表1和表2。
表1 七種邊緣檢測(cè)算子的特點(diǎn)和適用范圍比較
表2 七種邊緣檢測(cè)算子的性能比較
圖像邊緣檢測(cè)的檢測(cè)算子都不是具有絕對(duì)優(yōu)勢(shì)的方法,在圖像的抗噪聲、圖像邊緣的定位情況、是否可以檢測(cè)出圖像部分邊緣和算法運(yùn)行的速度等方面各自存在優(yōu)缺點(diǎn)。由于圖像數(shù)據(jù)是二維的,而實(shí)際物體是三維的,從三維到二維的投影必然會(huì)造成信息的丟失,再加上成像過程中的光照不均和噪聲等原因的影響,使得有邊緣的地方不一定能被檢測(cè)出來(lái), 而檢測(cè)出來(lái)的邊緣也不一定代表實(shí)際邊緣。實(shí)踐時(shí)要根據(jù)不同的系統(tǒng),針對(duì)不同的環(huán)境條件和要求,選擇合適的算子來(lái)對(duì)圖像進(jìn)行邊緣檢測(cè)。
[1] Kang Chung-Chia,Wang Wen-June.A novel edge detection method based on the maximizing objective function [J].Pattern Recognition(S0031-3203), 2007, 40(2): 609-618.
[2] 王智文, 劉美珍, 蔡啟先, 謝國(guó)慶.基于加權(quán)改進(jìn)小波變換的圖像融合算法[J], 計(jì)算機(jī)工程, 2009, 35(11): 228-230.
[3] John Canny.A Computational Approach to Edge Detection[J].IEEE Trans Pattern Analysis and Machine Intelligence, 1986, 10(12): 679-697.
[4] 馬艷, 張治輝.幾種邊緣檢測(cè)算子的比較[J].工礦自動(dòng)化, 2004, 1: 54-56.
[5] 趙芳, 欒曉明, 孫越.數(shù)字圖像幾種邊緣檢測(cè)算子檢測(cè)比較分析[J].自動(dòng)化技術(shù)與應(yīng)用, 2009, 28(3): 68-69.