Log和Canny邊緣檢測(附Matlab程序)

 

1、 實驗目的算法

(1) 經過實驗分析不一樣尺度下LOG和Canny邊緣提取算子的性能。函數

(2) 研究這兩種邊緣提取方法在不一樣參數下的邊緣提取能力。性能

(3) 使用不一樣的濾波尺度和添加噪聲能量(噪聲水平),經過與無噪聲圖像對比,選擇最能說明本身結論的濾波尺度和噪聲水平,並作出分析說明。測試

2、 實驗原理優化

邊緣的含義:在數字圖像中,邊緣是指圖像局部變化最顯著的部分,邊緣主要存在於目標與目標,目標與背景之間,是圖像局部特性的不連續性,如灰度的突變、紋理結構的突變、顏色的突變等。儘管圖像的邊緣點產生的緣由各不相同,但他們都是圖形上灰度不連續或灰度急劇變化的點,圖像邊緣分爲階躍狀、斜坡狀和屋頂狀。.net

通常圖像邊緣檢測方法主要有以下四個步驟:blog

(1)圖像濾波:傳統邊緣檢測算法主要是基於圖像強度的一階和二階導數,但導數的計算對噪聲很敏感,所以必須使用濾波器來改善與噪聲有關的邊緣檢測器的性能。須要指出的是,大多數濾波器在下降噪聲的同時也形成了邊緣強度的損失,所以,在加強邊緣和下降噪聲之間須要一個折衷的選擇。圖片

(2)圖像加強:加強邊緣的基礎是肯定圖像各點鄰域強度的變化值。加強算法能夠將鄰域(或局部)強度值有顯著變化的點突顯出來。邊緣加強通常是經過計算梯度的幅值來完成的。ip

(3)圖像檢測:在圖像中有許多點的梯度幅值比較大,而這些點在特定的應用領域中並不都是邊緣,因此應該用某種方法來肯定哪些點是邊緣點。最簡單的邊緣檢測判斷依據是梯度幅值。ci

(4)圖像定位:若是某一應用場合要求肯定邊緣位置,則邊緣的位置可在子像素分辨率上來估計,邊緣的方位也能夠被估計出來。

LOG檢測算子

(1)LOG邊緣檢測算子

在20世紀70年代,Marr理論根據神經生理學實驗得出瞭如下結論:物體的邊界是將亮度圖像與其解釋鏈接起來的最重要線索。邊緣檢測技術在當時是基於很小鄰域的卷積,只對特殊圖像效果好。這些邊緣檢測子的主要缺點是它們依賴物體的大小且對噪聲敏感。

基於二階導數過零點的邊緣檢測技術探究了階躍邊緣對應於圖像函數陡峭的變化這一事實。圖像函數的一階導數在對應於圖像邊緣的位置上應該取得極值,所以二階導數在同一位置應該爲0;而尋找過零點位置比起極值來得更容易和更準確。關鍵的問題是如何穩定地計算二階導數,一種可能性是首先平滑圖像(減少噪聲),再計算二階導數。在選擇平滑濾波器時,須要知足兩個標準:

(1) 濾波器應該是平滑的且在鄰域中大體上是有限帶寬的,以便減小會致使函數變化的可能頻率數。

(2)空間定位的約束要求濾波器的響應應來自於圖像中鄰近的點。這兩個標準矛盾的,可是能夠經過使用高斯分佈同時獲得優化。在實踐中,須要準確地考慮優化的含義。

2D高斯平滑算子(也稱爲高斯濾波器或簡單地稱爲高斯)由下式給出:

clip_image002

其中clip_image004是圖像座標,σ是關聯的機率分佈的標準差。標準差是高斯濾波器的惟一參數,它與濾波器操做鄰域的大小成正比。離算子中心越遠的像素影響越小,離中心超過3的像素影響能夠忽略不計。咱們的目標是獲得平滑後2D函數的二階導數。咱們知道Laplacian算子給出了二階導數且是各向同性的。那麼高斯平滑後的圖像的Laplacian能夠表示爲:

clip_image006

因爲所涉及算子的線性性,微分和卷積運算順序能夠交換:

clip_image008

因爲高斯濾波器的導數與所考慮的圖像無關,故它能夠事先解析地計算出來。這樣複合運算的複雜度下降了。選擇算子clip_image010的基礎有兩個基本概念。第一,算子的高斯部分會模糊圖像,從而在尺寸上將結構的灰度(包括噪聲)下降到遠小於σ的程度,並且高斯函數能在空間和頻率兩個域平滑圖像,於是在原圖像中引入不存在的人爲干擾(如振鈴)的可能性很小。第二,拉普拉斯有各向同性(旋轉不變)的重要優勢,符合人的視覺系統特性,並且對任何模板方向的灰度變化有相等的響應,從而避免了使用多個模板去計算圖像中任何點處的最強響應。

LOG算法步驟以下:

一、 取樣獲得的clip_image012高斯低通濾波器對輸入圖像濾波。

二、 計算第一步獲得圖像的拉普拉斯。

三、 找到步驟2所得圖像的零交叉。

Canny邊緣檢測算子介紹

1986年,JOHN CANNY 提出一個很好的邊緣檢測算法,被稱爲Canny邊緣檢測器,它是迄今爲止討論過的最優秀的邊緣檢測器。

Canny方法基於三個基本的目標:

一、低錯誤率。全部的邊緣都應該被找到,而且沒有假邊緣,全部檢測的邊緣儘量真實。

二、邊緣點應被很好的定位。由檢測器檢測到的邊緣點與真實邊緣的中心之間的鉅鹿應該最小。

三、單一的邊緣點效應。對於真實的邊緣點,檢測器應該僅僅返回一個點。也就是真實邊緣的局部最大數應該是最小的。意味着僅存在單一邊緣點的位置,檢測器不該指出多個邊緣像素。

Canny邊緣檢測算法由一下基本步驟組成:

一、用一個高斯濾波器平滑輸入圖像。

二、計算梯度幅值圖像和角度圖像。

三、對梯度幅值圖像應用非最大抑制。

四、用雙閾值處理和鏈接分析來檢測並鏈接邊緣。

算法詳解

一、高斯濾波

對任何一幅圖像clip_image014進行邊緣檢測,都不能直接在原始數據上進行操做,必須有平滑濾波的過程。Canny算子的第一步就是對原始圖像進行高斯平滑濾波,高斯模板以下:

clip_image002[1]

用該模板對原始圖像進行高斯卷積,能夠獲得平滑後的圖像:

clip_image006[1]

高斯模糊後的圖像與原始圖像相比,有輕微的模糊,高斯卷積的目的主要是爲了抑制圖像噪聲對邊緣檢測的干擾,它可以在頻域和時域兩個域平滑圖像。

二、梯度幅值圖像和角度圖像

clip_image018

幅值圖像clip_image020和角度圖像clip_image022是與平滑後的圖像尺寸相同的陣列。由於它是使用梯度獲得的,clip_image020[1]在局部最大值範圍一般包含更寬的範圍。下一步是細化那些邊緣,也就是下一步須要採用的操做,使用非最大抑制。

三、非最大抑制

非最大抑制的目的是細化梯度幅值圖像產生的寬邊緣問題,該方法的本質是指定邊緣法線的許多離散方向(梯度向量)。例如,在一個3×3區域內,對於經過該區域中心點的邊緣,咱們能夠定義四個方向:水平、垂直、+45°和-45°。圖1顯示了水平邊緣的兩個可能方向。

clip_image023clip_image024

圖1  在一個3×3區域中,水平邊緣的兩個可能方向。

由於咱們須要把全部的邊緣方向量化爲四個方向,故須要定義一個方向範圍,在該範圍內,咱們考慮一個水平方向的邊緣。咱們由法線的方向來肯定邊緣的方向。如圖2所示,若是邊緣法線方向的範圍爲-25°和+25°,或者是-157.5°和+157.5°,咱們稱該邊緣爲水平邊緣。圖3則顯示了對應於所考慮的四個方向的角度範圍。

clip_image026 clip_image028 圖2 圖3

圖2表示一個水平邊緣的邊緣法線的方向角的值的範圍(灰色)        

圖3表示在3×3區域中,4種類型的邊緣方向的邊緣法線角度範圍

令d1,d2,d3和d4表示四個基本邊緣方向:水平、-45°、垂直、+45°。對於clip_image022[1]中以沒一點clip_image004[1]爲中心的3×3區域,咱們能夠給出以下非最大抑制方案:

(1) 尋找最接近clip_image022[2]的方向clip_image032.

(2) 若是clip_image020[2]的值至少小於沿clip_image032[1]的兩個鄰居之一,則令clip_image035(抑制);

不然,令clip_image037clip_image039是非最大抑制後的圖像。

三、閾值處理

爲了減小僞邊緣點,對clip_image039[1]進行閾值處理。Canny算子採用雙閾值的處理方法,一個低閾值clip_image042,一個高閾值clip_image044,Canny算子clip_image044[1]clip_image042[1]比率2:1或3:1。將閾值操做認爲兩幅附加的圖像

clip_image046

clip_image048

開始時,clip_image050clip_image052被設置爲零。閾值處理後,clip_image050[1]的非零像素一般比clip_image052[1]少,可是clip_image050[2]中全部的非零像素都包含在clip_image052[2]中。經過令clip_image054

3、 實驗結果及分析

在實驗中,選取三幅圖像做爲邊緣檢測的輸入圖像,分別是棋盤格(Tessella.bmp)、Lena (Lena.bmp)和本身選擇的一幅天然場景圖像(轉換成8bit灰度,256×256大小的Bmp格式圖像)。實驗過程當中,爲了比較噪聲的影響,分別對圖像加入了不一樣參數下的高斯噪聲。具體參數以下:

對於LOG算子,採用了均值爲0,標準差σ=0.005的高斯白噪聲。高斯模板採用的是濾波尺度爲5×5,標準差σ=1,設置的閾值有thr=0.0六、0.十、0.15三種狀況。同時爲了比較加入噪聲對邊緣檢測的影響,同時參考了無噪聲不一樣參數下的邊緣檢測效果。

對於Canny算子,設置的參數主要有高斯模糊尺度的不一樣,添加的噪聲的程度以及雙閾值參數的設置。具體爲在無添加噪聲狀況下,有濾波尺度5×5

σ=1,thr_min=12,thr_max=24;濾波尺度5×5 ,σ=0.5 ,thr_min=12, thr_max=24;濾波尺度5×5 ,σ=1,thr_min=24 ,thr_max=48;濾波尺度5×5 ,σ=1 ,thr_min=6 thr_max=12;添加高斯噪聲圖片均值爲0,方差爲0.005 濾波尺度5×5 ,σ=1 thr_min=6 ,thr_max=12;添加高斯噪聲圖片均值爲0,方差爲0.0005濾波尺度5×5 ,σ=1 ,thr_min=6 ,thr_max=12。

(一)LOG邊緣檢測結果

一、Lena(256×256,bmp格式的灰度圖)爲測試圖片進行邊緣檢測

(1)噪聲水平爲=0.0005

clip_image056clip_image058

圖1-1-1 LOG 邊緣檢測及局部放大 clip_image060=1 thr=0.06

clip_image062clip_image064

圖1-1-2 LOG 邊緣檢測及局部放大 clip_image060[1]=1 thr=0.10

clip_image066clip_image068

圖1-1-3 LOG 邊緣檢測及局部放大 clip_image060[2]=1 thr=0.15

clip_image070clip_image072

圖1-1- 4 LOG 邊緣檢測及局部放大 clip_image060[3]=0.5 thr=0.15

(2)噪聲水平爲=0.005

clip_image074clip_image076

圖1-1-5 LOG 邊緣檢測及局部放大 clip_image060[4]=1 thr=0.06

二、以棋盤格Tessella爲測試圖片進行邊緣檢測

(1)噪聲水平爲=0.0005

clip_image078clip_image080

圖1-2-1 LOG 原圖及加噪圖像

clip_image082clip_image084

圖1-2-2 LOG 高斯平滑及邊緣檢測圖像 clip_image060[5]=1 thr=0.06

(二)Canny邊緣檢測結果

該部分對Canny邊緣檢測的四個步驟的各階段圖像都進行了顯示,以便檢驗每一步操做的功能。在本實驗中,閾值採用了thr_max/thr_min=2的默認比例。

一、以Lena(256×256,bmp格式的灰度圖)爲測試圖片進行邊緣檢測

(1)噪聲水平爲=0,無噪聲邊緣檢測

clip_image094clip_image096

clip_image098clip_image100

圖2-1-1濾波尺度clip_image102 clip_image060[7]=1 thr_min=12 thr_max=24

clip_image104vclip_image106

clip_image108clip_image110

圖2-1-2濾波尺度clip_image102[1] clip_image060[8]=0.5 thr_min=12 thr_max=24

clip_image094[1]clip_image096[1]

clip_image098[1]clip_image115

圖2-1-3濾波尺度clip_image102[2] clip_image060[9]=1 thr_min=24 thr_max=48

clip_image094[2] clip_image096[2] clip_image098[2] clip_image120

圖2-1-4濾波尺度clip_image102[3] clip_image060[10]=1 thr_min=6 thr_max=12

(2)噪聲水平爲=0.005

clip_image122 clip_image124 clip_image126 clip_image128

圖2-1-5濾波尺度clip_image102[4] clip_image060[11]=1 thr_min=6 thr_max=12

(3)噪聲水平爲=0.005

clip_image130clip_image132clip_image134clip_image136

圖2-1-6濾波尺度clip_image102[5] clip_image060[12]=1 thr_min=6 thr_max=12

二、以棋盤格Tessella爲測試圖片進行邊緣檢測

clip_image138clip_image140clip_image142 clip_image144

圖2-2-1添加高斯噪聲圖片均值爲0,方差爲0.0005

濾波尺度clip_image102[6] clip_image060[13]=1 thr_min=6 thr_max=12

實驗結果分析

(1)以Lena圖像分析LOG和Canny

經過觀察圖1-1-一、圖1-1-2及圖1-1-3,能夠發現LOG邊緣檢測隨着閾值thr的增大,雖然噪點愈來愈少,但同時檢測到的圖像邊緣信息丟失嚴重,圖像局部精細部分檢測幾乎趨向於零。

經過觀察圖1-1-1和圖1-1-5,兩幅圖主要是加的噪聲水平不同,前者是0.0005,後者則是0.005,能夠看到圖1-1-5邊緣檢測的效果很是差,幾乎只能隱約看到輪廓信息,大量的噪點充斥着整幅圖像。從而咱們能夠知道LOG算子對噪聲比較敏感,圖1-3-2一樣證明了該結論。

比較高斯濾波模板標準差爲1的圖1-1-1和標準差爲0.5圖1-1-4,能夠發如今尺度較小的狀況下,對圖像中的紋理豐富的頭髮,帽子上的裝飾刻畫的比較細緻,但同時丟失了背景中左側的垂直邊緣和右側中部的對比度很弱的橫向邊緣;在大尺度上,這些背景邊緣獲得了體現,但同時對於那些豐富的紋理區,檢測結果出現了丟失和偏移。

從Canny算子的檢測結果來看,它對於圖像中的紋理豐富的地方和背景處的邊緣,以及對比度弱的邊緣都能獲得很好的檢出率;從圖2-1-1和圖2-1-2能夠發如今大尺度上一樣也丟失了不少細節,只表現出一些輪廓特徵。

比較圖2-1-一、圖2-1-3及圖2-1-4,一樣能夠發現,隨着閾值的增大,Canny邊緣檢測一樣丟失信息愈來愈多,只表現出一些輪廓。比較圖2-1-4和圖2-1-5,在噪聲水平擴大10倍的狀況下,能夠觀察到左側垂直邊緣信息丟失嚴重,同時邊緣像素變寬,出現了橫向的細小條紋。右側黑色背景部分出現了必定的僞邊緣現象。但相對於LOG算子,Canny邊緣檢測整體效果較好,對噪聲的抑制較強。

(2)以Tessella圖像分析LOG和Canny

Tessella圖像是邊緣信息豐富的棋盤格,灰度信息分佈規律,只能取有限的幾個值。觀察比較圖1-2-2和圖2-2-1,能夠發現,對於LOG算子,垂直信息丟失嚴重,垂直邊緣廣泛斷開,水平邊緣信息也比較寬,對噪聲比較敏感,檢測效果較差。對於Canny算子,能夠發現邊緣檢測效果很是好,對於噪聲點的抑制也表現的很是優異,只出現了一些零散的孤立噪聲點。Canny算子雖然對各類邊緣都有較好的檢出率,可是檢測出的邊緣點與原始圖像的位置有必定範圍的偏差。

4、 實驗結論

從以上的檢測結果中能夠看出,相同尺度下的LOG算子老是能比Canny算子檢測出更多的細節,而相對於此,Canny算子卻老是能對真正比較顯著地邊緣給出檢測。LOG邊緣檢測子是採用二階導數過零點的檢測方法,故對噪聲更敏感一些,所以從抑制噪聲方面來說,Canny邊緣檢測子不容易受到噪聲的干擾,而相同尺度下LOG算子卻容易受到噪聲的干擾,抑制噪聲的能力要弱一些。另外,因爲Canny邊緣檢測子採用兩種不一樣的閾值分別檢測強邊緣和弱邊緣,而且當弱邊緣和強邊緣相連時,纔將弱邊緣包含在輸出圖像中,故而Canny算子更能檢測出真正的弱邊緣,可是Canny邊緣檢測子檢測出的邊緣的位置會有必定範圍的偏差,LOG邊緣檢測子相對比較容易受到噪聲干擾,會檢測出更多的細節,也容易檢測出一些因爲噪聲引發的假邊緣,可是LOG邊緣檢測子對邊緣位置的檢測仍是很準確的。在大尺度上的算法都比較好的檢測出樹幹的邊緣,而對周圍的紋理區域的刻畫都失去了組織結構上的特徵。

LOG算子容易受尺度的影響,不一樣尺度下的邊緣點要用不一樣尺度的LOG算子檢測,Canny 算子受尺度的影響不太明顯,不一樣尺度下,邊緣點的位置都有誤差,但幾乎相同; LOG算子對噪聲的抑制能力隨着尺度的增長而增長,相同尺度下的Canny算子比LOG算子的抗噪聲能力強,而LOG算子比Canny算子的邊緣點準確;在尺度選擇合適的狀況下,LOG算子對圖像邊緣點檢測的位置很是準確,可以保留邊緣點比較細緻的組織結構,而Canny算子對圖像邊緣檢出率比較高,包括紋理區域,以及對比度很弱的邊緣點,可是對這些邊緣點的組織結構刻畫得不是特別細緻,邊緣點的位置有小範圍的誤差。

 

MATLAB程序http://download.csdn.net/detail/lk274857347/9577223

 

參考文獻

1. D.Marr and E. Hildreth, Theory of Edge Detection, Proc. R. Soc. Lond. B207:187-217.

2. John Canny, A Computational Approach to Edge Detection, IEEE Trans. PAMI, 8(6):679-698.

3. James J. Clark, Authenticating Edges Produced by Zero-crossing Algorithms, IEEE T. PAMI, 11(1), 1989, pp.43-57.

4. Rafael, C, Gonzalez, Richard, E, Woods. 數字圖像處理(第三版)[M]. 北京:電子工業出版社, 2011.

5. http://blog.csdn.net/humanking7/article/details/46606791

相關文章
相關標籤/搜索