資源描述:
《Sobel邊緣檢測算子》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、經(jīng)典邊緣檢測算子比較一各種經(jīng)典邊緣檢測算子原理簡介圖像的邊緣對人的視覺具有重要的意義,一般而言,當(dāng)人們看一個(gè)有邊緣的物體時(shí),首先感覺到的便是邊緣。灰度或結(jié)構(gòu)等信息的突變處稱為邊緣。邊緣是一個(gè)區(qū)域的結(jié)束,也是另一個(gè)區(qū)域的開始,利用該特征可以分割圖像。需要指出的是,檢測出的邊緣并不等同于實(shí)際目標(biāo)的真實(shí)邊緣。由于圖像數(shù)據(jù)時(shí)二維的,而實(shí)際物體是三維的,從三維到二維的投影必然會(huì)造成信息的丟失,再加上成像過程中的光照不均和噪聲等因素的影響,使得有邊緣的地方不一定能被檢測出來,而檢測出的邊緣也不一定代表實(shí)際邊緣。圖像的邊緣有方向和幅度兩個(gè)屬性,沿邊緣方向像素變化平緩,垂直于邊緣方向像素變
2、化劇烈。邊緣上的這種變化可以用微分算子檢測出來,通常用一階或兩階導(dǎo)數(shù)來檢測邊緣,如下圖所以。不同的是一階導(dǎo)數(shù)認(rèn)為最大值對應(yīng)邊緣位置,而二階導(dǎo)數(shù)則以過零點(diǎn)對應(yīng)邊緣位置。(a)圖像灰度變化(b)一階導(dǎo)數(shù)(c)二階導(dǎo)數(shù)基于一階導(dǎo)數(shù)的邊緣檢測算子包括Roberts算子、Sobel算子、Prewitt算子等,在算法實(shí)現(xiàn)過程中,通過(Roberts算子)或者模板作為核與圖像中的每個(gè)像素點(diǎn)做卷積和運(yùn)算,然后選取合適的閾值以提取邊緣。拉普拉斯邊緣檢測算子是基于二階導(dǎo)數(shù)的邊緣檢測算子,該算子對噪聲敏感。一種改進(jìn)方式是先對圖像進(jìn)行平滑處理,然后再應(yīng)用二階導(dǎo)數(shù)的邊緣檢測算子,其代表是LOG算子。
3、前邊介紹的邊緣檢測算子法是基于微分方法的,其依據(jù)是圖像的邊緣對應(yīng)一階導(dǎo)數(shù)的極大值點(diǎn)和二階導(dǎo)數(shù)的過零點(diǎn)。Canny算子是另外一類邊緣檢測算子,它不是通過微分算子檢測邊緣,而是在滿足一定約束條件下推導(dǎo)出的邊緣檢測最優(yōu)化算子。1Roberts(羅伯特)邊緣檢測算子景物的邊緣總是以圖像中強(qiáng)度的突變形式出現(xiàn)的,所以景物邊緣包含著大量的信息。由于景物的邊緣具有十分復(fù)雜的形態(tài),因此,最常用的邊緣檢測方法是所謂的“梯度檢測法”。設(shè)是圖像灰度分布函數(shù);是圖像邊緣的梯度值;是梯度的方向。則有(1)(n=1,2,...)(2)式(1)與式(2)可以得到圖像在(x,y)點(diǎn)處的梯度大小和梯度方向。1
4、8將式(1)改寫為:(3)稱為Roberts邊緣檢測算子。式中對等的平方根運(yùn)算使該處理類似于人類視覺系統(tǒng)的發(fā)生過程。事實(shí)上Roberts邊緣檢測算子是一種利用局部差分方法尋找邊緣的算子,Robert梯度算子所采用的是對角方向相鄰兩像素值之差,所以用差分代替一階偏導(dǎo),算子形式可表示如下:(4)上述算子對應(yīng)的兩個(gè)模板如圖(A)所示。實(shí)際應(yīng)用中,圖像中的每個(gè)像素點(diǎn)都用這兩個(gè)模板進(jìn)行卷積運(yùn)算,為避免出現(xiàn)負(fù)值,在邊緣檢測時(shí)常提取其絕對值。100-101-10(a)(b)圖(A)Robert算子模板2Sobel(索貝爾)邊緣檢測算子該算子是由兩個(gè)卷積核與對原圖像進(jìn)行卷積運(yùn)算而得到的。其
5、數(shù)學(xué)表達(dá)式為:(5)實(shí)際上Sobel邊緣算子所采用的算法是先進(jìn)行加權(quán)平均,然后進(jìn)行微分運(yùn)算,我們可以用差分代替一階偏導(dǎo),算子的計(jì)算方法如下:(6)Sobel算子垂直方向和水平方向的模板如圖(B)所示,前者可以檢測出圖像中的水平方向的邊緣,后者則可以檢測圖像中垂直方向的邊緣。實(shí)際應(yīng)用中,圖像中的每一個(gè)像素點(diǎn)都用這兩個(gè)卷積核進(jìn)行卷積運(yùn)算,取其最大值作為輸出。運(yùn)算結(jié)果是一幅體現(xiàn)邊緣幅度的圖像。-1-2-100018121-101-202-301(a)(b)圖(B)Sobel算子模板3Prewitt(普瑞維特)邊緣檢測算子Prewitt邊緣檢測算子就是一種利用局部差分平均方法尋找邊
6、緣的算子,它體現(xiàn)了三對像素點(diǎn)像素值之差的平均概念,因?yàn)槠骄軠p少或消除噪聲,為此我們可以先求平均,再求差分,即利用所謂的平均差分來求梯度。用差分代替一階偏導(dǎo)可得算子形式如下:(7)Prewitt邊緣檢測算子的兩個(gè)模板如圖(C)所示,它的使用方法同Sobel算子一樣,圖像中的每個(gè)點(diǎn)都用這兩個(gè)核進(jìn)行卷積,取得最大值作為輸出。Prewitt算子也產(chǎn)生一幅邊緣圖像。10-110-110-1-1-1-1000111(a)(b)圖(C)Prewitt算子模板4Laplacian(拉普拉斯)邊緣檢測算子對于階躍狀邊緣,其二階導(dǎo)數(shù)在邊緣點(diǎn)出現(xiàn)過零交叉,即邊緣點(diǎn)兩旁的二階導(dǎo)數(shù)取異號,據(jù)此可以
7、通過二階導(dǎo)數(shù)來檢測邊緣點(diǎn)。拉普拉斯邊緣檢測算子正是對二維函數(shù)進(jìn)行二階導(dǎo)數(shù)運(yùn)算的標(biāo)量算子,它的定義是:(8)用差分代替二階偏導(dǎo)時(shí),與前述三個(gè)一階導(dǎo)數(shù)算子不同,拉普拉斯算子的形式可表示如下:(9)18拉普拉斯邊緣檢測算子的模板如圖(D)所示,模板的基本特征是中心位置的系數(shù)為正,其余位置的系數(shù)為負(fù),且模板的系數(shù)之和為零。它的使用方法是用圖中的兩個(gè)點(diǎn)陣之一作為卷積核,與原圖像進(jìn)行卷積運(yùn)算即可。拉普拉斯算子又是一個(gè)線性的移不變算子,它的傳遞函數(shù)在頻域空間的原點(diǎn)為零,因此,一個(gè)經(jīng)拉普拉斯濾波過的圖像具有零平均灰度。拉普拉斯檢測