王潤



摘要:邊緣是圖像最基礎也最重要的基本特征之一,邊緣檢測更是圖像分割、模式識別等圖像技術的重要前提。因此圖像的邊緣檢測一直是圖像處理領域研究的熱點。一個好的邊緣檢測方法可以極大的提高圖像處理的效率和正確率。本文簡要介紹了邊緣檢測,并對幾種經典檢測算子的實現原理進行分析,介紹了各種算子的檢測性能及適用圖像類型。另外以Laplacian算子為例分析算子閥值的選取重要性。最后對六種檢測算子進行相應的實現,分為無噪聲檢測、有噪聲檢測和濾波后檢測。通過對比實驗結果來驗證各種檢測算子的檢測性能與適用場景。
關鍵詞:邊緣檢測;圖像處理;經典算子;Laplacian;閾值
中圖分類號:TP391 ? ? ? ?文獻標識碼:A
文章編號:1009-3044(2019)13-0211-04
1引言
圖像是客觀世界的信息載體,是我們認識世界的重要途徑。隨著計算機技術的發展以及對圖像處理不斷的研究,圖像處理技術的應用范圍也越加廣泛,如:醫學光影,地質勘探,戰場分析,光學顯微等。而在圖像的處理與分析中往往繞不開一個前提,就是圖像邊緣檢測。圖像邊緣能傳遞大部分圖像信息,邊緣檢測主要是為了正確反映圖像的形狀和反射等信息,是圖像識別、圖像分析、模式識別、目標追蹤、物體判別等技術的前期重要步驟,邊緣檢測的準確度在一定程度上決定了后續工作能否順利進行,因此,圖像的邊緣檢測技術是圖像處理鄰域必須重視的研究課題。
自20世紀60年代便已經有了較為科學的邊緣檢測算子,在這一領域,迄今為止已經有大量優秀的研究成果被應用。目前對圖像邊緣檢測的研究方向分為兩個:一是結合經典算子和新思想尋找出新的、性能更好的算子,二是將已經成熟的圖像邊緣檢測算子更高效的運用在實際場景。
目前主流的邊緣檢測方法主要有:微分算子法、統計學方法、曲面擬合法、最優算子法、多尺度方法。其中最為成熟、應用最為廣泛的還是微分算子法。通過分析各算子原理,總結各自的適用領域,能夠讓各算子在實際應用中更好的發揮其長處,并為新的邊緣檢測方法提供衡量尺度和改進依據。
2 邊緣檢測技術概述
2.1 邊緣檢測
圖像邊緣是由一類像素點組合而成的,這類像素點周圍的像素灰度有明顯的變化。邊緣是具有幅值和方向的矢量,在圖像中表現為像素灰度的突變。
客觀的三維物體用圖像來顯示時,空間信息就變成了二維的平面信息。一張二維的圖像可以用一個二維數組f(x,y)來表示。這里的x和y表示一個二維空間{x,y}上的一個坐標點。f表示這個坐標點上的某種特征。在灰度圖中,f表示的是這一坐標上像素的灰度,即圖像的亮度。通過考察圖像中像素每鄰域內的灰度突變可以大致判別出圖像邊緣的位置。
早期的邊緣檢測利用梯度算子[1]或一階導數來估計圖像灰度變化的梯度方向,然后對該梯度進行閾值運算,如果梯度值大于某個給定的閾值,則該點處就是邊緣點。閾值的選取對圖像邊緣檢測有很大的影響[2],特別是在加噪聲的圖像中,如果沒有選擇合適的閾值,會在邊緣銳化和噪聲平滑之間失去平衡,導致邊緣成像的質量很差。算子性能的評價指標包括成像的連續性、邊緣的寬度、邊緣的定位精度、抗噪聲能力以及算子時間復雜度。
3 算子的閾值影響
閾值是邊緣檢測成像過程中關鍵的一個參數,在傳統的經典算子中,同一個算子,對于不同的圖像場景,閾值的選取也是不同的。比較常用的閾值選取方法有兩種:一是全局閾值法[10-11],典型的有大津法[12](最大類間方差法);二是局部閾值法[13],典型的有Bernsen算法[14]。
本文的重點并不在閾值的選取上,因此本節主要介紹閾值選取對圖像邊緣檢測的重要性,不對閾值的選取過程做更多的研究。在這里以沒有濾波功能的Laplacian算子為例,對比不同場景下,不同的閾值對邊緣檢測的成像影響。
3.1檢測無噪聲圖片的閾值影響
本文以下內容均以圖1為原圖進行實驗。
圖2從左到右依次為閾值為0.02、0.2、0.5時的邊緣圖像,對比上面三圖,可以明顯看到對于無噪聲圖像,Laplacian算子的閾值在0.2左右比較合適,當閾值選擇過小時,會使大量像素點被誤判為邊緣像素點,這樣會丟失邊緣的精確定位,產生過多的非邊緣像素點。當閾值選擇過大時,又會把很多邊緣點判定為非邊緣點,導致邊緣信息大量缺失。
3.2 檢測加高斯噪聲圖片的閾值影響
圖3從左到右、從上至下依次為加噪圖像、加噪后閾值為0.1、0.5、0.9時的邊緣圖像。從上面三圖可以明顯看到,在圖片中添加了加入少量均值為0方差為0.001高斯噪聲后,雖然多次變換閾值,但是Laplacian算子還是無法精確的區別邊緣點與噪聲點。這也從側面印證濾波對圖像邊緣檢測的重要性。
3.3 濾波后圖像的閾值影響
圖4從左至右、從上至下依次為濾波圖像、濾波后閾值為0.002、0.02、0.05時的邊緣圖像。本文采用中值濾波[15]加均值濾波[16]結合的方法對加入高斯噪聲的圖像進行濾波,濾波效果一般,但是對比未濾波時的邊緣檢測效果來說,Laplacian算子的性能到了明顯的提升,在選取合理的閾值時,能大致描述出圖像的邊緣,但是對邊緣的細節檢測還是欠缺。
通過第3小節的實驗,可以知道邊緣檢測中閾值的選取不宜過大或過小,在后面的實驗中,選取了各算子較合適的閾值,以期得到最準確的實驗結果。
4. 經典算子及實驗結果分析對比
4.1 各經典算子對原圖檢測性能對比
如圖5所示,從左至右,從上至下分別是原圖經過Sobel算子、Roberts算子、Prewitt算子、Laplacian算子、LoG算子和Canny算子進行邊緣檢測后的結果。
Roberts算子的成像效果并不是很好,忽略了圖像的許多細節,邊緣的斷續較嚴重。
Sobel算子對于大部分較明顯的邊緣都可以檢測出來,但是對于不明顯的邊緣則造成了大量的誤判,圖像邊緣的連續性也并不是很好。
Prewitt算子在邊緣檢測的成像上與Soble基本一致,Sobel更注重中心特征的提取,所以成像的定位略微精準些,Prewitt因為等價提取,所以細節上略微精準些。
Laplacian算子可以明顯看到圖中邊緣的位置比較精確,對帽子上沿的檢測效果很好,對確定為邊緣的像素點有增強,但是丟失了一些被誤判的邊緣點,而且檢測圖像中出現了噪點。
LoG算子無明顯短板,但還是有一些邊緣的斷續。此算子會減少邊緣點的誤判,并且解決了Laplacian算子對噪聲敏感的缺點,性能上明顯優于Laplacian算子。
Canny算子成像更加精細,能檢測到絕大多數的邊緣信息,并且很少有邊緣誤判,且邊緣連續性也很好。
4.2 加噪聲時各經典算子邊緣檢測性能對比
在圖像中加入少量均值為0方差為0.001高斯噪聲,各算子檢測結果如圖6所示,從左至右,從上至下分別是原圖經過Sobel算子、Roberts算子、Prewitt算子、Laplacian算子、LoG算子和Canny算子進行邊緣檢測后的結果。
從圖6可以明顯看出Roberts算子無抑制噪聲的能力,在加入噪聲的情況下丟失了大量的邊緣信息。
Sobel算子運用像素點上下、左右相鄰點的灰度加權算法,對噪聲有一定的平滑作用。但是因為局部平均的影響,也出現了一些偽邊緣。
Prewiit算子由于像素平均的原理具有一定的平滑噪聲的能力,所以在有噪聲的情況下依然能檢測出邊緣,但同時丟失了大量的邊緣,且定位不夠精確。
Laplacian算子作為二階差分,對噪聲更加敏感,它使圖像中的噪聲部分加強。圖中已經判別不出噪聲點和邊緣點了。
LoG算子會先對圖像進行平滑處理,其成像依然比較精確,大部分的邊緣都能檢測出來,但依然會將一些噪聲點誤判為邊緣,導致邊緣圖像中出現了較多的噪點。
Canny算子的表現中規中矩,雖然檢測出來了絕大多數的邊緣,但也將一些噪點誤判并連接到了邊緣上,不過噪點量小于LoG算子,在加噪聲圖像的檢測中,性能算是最好。
4.3 進行濾波后各經典算子邊緣檢測性能對比
本文使用中值加均值濾波對加高斯噪聲的圖像進行平滑,各算子檢測對比如圖7所示,從左至右,從上至下分別是原圖經過Sobel算子、Roberts算子、Prewitt算子、Laplacian算子、LoG算子和Canny算子進行邊緣檢測后的結果。
可以明顯看出,濾波后雖然解決了邊緣圖像的噪點問題,但是濾波也導致很多邊緣信息的丟失。
Roberts算子在丟失了一些在噪聲情況下可以檢測到的細小邊緣。Sobel和Prewitt本身就有一點的抑制噪聲的功能,在處理前濾波,導致圖像過于平滑,在處理的過程中因兩次濾波導致邊緣信息丟失過多,圖像面部邊緣信息基本全部丟失。
LoG和Canny算子也因為過度濾波,導致丟失大量的邊緣信息,檢測性能反而下降。
5總結
在一階微分算子中,不管是從理論的角度分析,還是后續的實驗驗證結果來看,Roberts算子對邊緣的定位精度較高,但是檢測精度一般,容易忽略細節信息,因此Roberts算子更適合邊緣較明顯,邊緣線較長的圖像,如立方體、大棟建筑等無過多細小邊緣場景。Sobel與其相比,對細節信息的檢測較好,但也容易造成誤判,在邊緣的連續性上不是很好。Prewitt與Sobel相比,誤判的情況減少,但在整體成像上略微粗糙。總的來說,三種一階微分算子在邊緣的定位與檢測上都有不足之處,在對圖像加噪之后更顯遜色,除非是邊緣特征明顯且光線較好的場景下,它們才會有較好的檢測效果。
二階微分算子中,Laplacian算子作為二階差分,對噪聲更加敏感,所以它對無噪聲的圖像檢測效果較好,對有噪聲的圖像檢測效果不但不好,還會加強噪聲,因為對噪聲的敏感,所以它更適用于濾波后的圖像,在4.3小節中的實驗結果中也驗證了這一點,我們也可以明顯看到它良好的檢測效果;LoG算子作為Laplacian的改進算子,加入了高斯濾波算法,因此它對于有噪聲污染的圖像檢測效果較好,但對于已經濾波后的圖像,會因為過度濾波而導致檢測效果不升反降;Canny算子同樣作為具有高斯濾波算法的算子,也適用于加噪圖像而不適用于濾波圖像,但因為其在對邊緣點的判斷和選取上運用的獨特的非極大值抑制與雙閾值法,使得它在邊緣定位上比LoG更精準,抗噪性能更優越,這幾點在之前的實驗中也得到了驗證。綜上,Canny算子在綜合性能上優于其它算子,在圖像邊緣檢測研究領域,Canny算子也得到了更為廣泛的應用。
參考文獻:
[1] 楊新,郭豐俊.一種基于梯度算子的圖像匹配算法[J]. 電子學報, 1999, 27(10):30-33.
[2] 王坤明,朱雙東,張超.自動選取閾值方法比較研究[J].遼寧石油化工大學學報,2002,22(2):70-73.
[3] 楊曉波.算法時間復雜性分析綜述[J]. 西藏大學學報,2011,26(2):87-90.
[4] 王冰.用Roberts算子進行邊緣處理[J]. 甘肅科技, 2008,24(10):18-20.
[5] 郎瑤.一種改進的Sobel邊緣檢測算子[J]. 輕工科技,2011,27(5):59-60.
[6] 石俊濤,朱英,楚曉麗,等. 基于灰色關聯度和Prewitt算子的邊緣檢測新方法[J].微計算機信息,2010,26(29):214-216.
[7] 姜杭毅,蔡元龍.用于圖象邊緣檢測的拉普拉斯-多項式算子[J]. 信息與控制,1988,17(6):26-29.
[8] 賀強,晏立.基于LOG和Canny算子的邊緣檢測算法[J]. 計算機工程, 2011,37(3):210-212.
[9] 陳強,朱立新,夏德深. 結合Canny算子的圖像二值化[J]. 計算機輔助設計與圖形學學報,2005,17(6):1302-1306.
[10] 陸成剛.一種灰度圖像二值化的自適應全局閾值方法:, CN 104050472 A[P].2014.
[11] 韓思奇,王蕾. 圖像分割的閾值法綜述[J]. 系統工程與電子技術, 2002, 24(6):91-94.
[12] 齊麗娜,張博, 王戰凱. 最大類間方差法在圖像處理中的應用[J]. 無線電工程, 2006, 36(7):25-26.
[13] 王群峰,徐迎暉. 結合改進遺傳算法與局部閾值法的指紋圖像分割[J].自動化與信息工程,2015,36(1):12-17.
[14] 張紅穎.改進的Bernsen算法實證研究[J]. 電子世界,2013(4):105.
[15] 張恒,雷志輝,丁曉華. 一種改進的中值濾波算法[J].中國圖象圖形學報,2004,9(4):408-411.
【通聯編輯:唐一東】