不同圖像灰度不同,邊界處一般會(huì)有明顯邊緣,利用此特征可以分割圖像。需要說明的是:邊緣和物體間的邊界并不等同,邊緣指的是圖像中像素的值有突變的地方,而物體間的邊界指的是現(xiàn)實(shí)場(chǎng)景中的存在于物體之間的邊界。有可能有邊緣的地方并非邊界,也有可能邊界的地方并無邊緣,因?yàn)楝F(xiàn)實(shí)世界中的物體是三維的,而圖像只具有二維信息,從三維到二維的投影成像不可避免的會(huì)丟失一部分信息;另外,成像過程中的光照和噪聲也是不可避免的重要因素。正是因?yàn)檫@些原因,基于邊緣的圖像分割仍然是當(dāng)前圖像研究中的世界級(jí)難題,目前研究者正在試圖在邊緣提取中加入高層的語義信息。
在實(shí)際的圖像分割中,往往只用到一階和二階導(dǎo)數(shù),雖然原理上,可以用更高階的導(dǎo)數(shù),但是,因?yàn)樵肼暤挠绊,在純粹二階的導(dǎo)數(shù)操作中就會(huì)出現(xiàn)對(duì)噪聲的敏感現(xiàn)象,三階以上的導(dǎo)數(shù)信息往往失去了應(yīng)用價(jià)值。二階導(dǎo)數(shù)還可以說明灰度突變的類型。在有些情況下,如灰度變化均勻的圖像,只利用一階導(dǎo)數(shù)可能找不到邊界,此時(shí)二階導(dǎo)數(shù)就能提供很有用的信息。二階導(dǎo)數(shù)對(duì)噪聲也比較敏感,解決的方法是先對(duì)圖像進(jìn)行平滑濾波,消除部分噪聲,再進(jìn)行邊緣檢測(cè)。不過,利用二階導(dǎo)數(shù)信息的算法是基于過零檢測(cè)的,因此得到的邊緣點(diǎn)數(shù)比較少,有利于后繼的處理和識(shí)別工作。
各種算子的存在就是對(duì)這種導(dǎo)數(shù)分割原理進(jìn)行的實(shí)例化計(jì)算,是為了在計(jì)算過程中直接使用的一種計(jì)算單位;
Roberts算子:邊緣定位準(zhǔn),但是對(duì)噪聲敏感。適用于邊緣明顯且噪聲較少的圖像分割。Roberts邊緣檢測(cè)算子是一種利用局部差分算子尋找邊緣的算子,Robert算子圖像處理后結(jié)果邊緣不是很平滑。經(jīng)分析,由于Robert算子通常會(huì)在圖像邊緣附近的區(qū)域內(nèi)產(chǎn)生較寬的響應(yīng),故采用上述算子檢測(cè)的邊緣圖像常需做細(xì)化處理,邊緣定位的精度不是很高。
Prewitt算子:對(duì)噪聲有抑制作用,抑制噪聲的原理是通過像素平均,但是像素平均相當(dāng)于對(duì)圖像的低通濾波,所以Prewitt算子對(duì)邊緣的定位不如Roberts算子。
Sobel算子:Sobel算子和Prewitt算子都是加權(quán)平均,但是Sobel算子認(rèn)為,鄰域的像素對(duì)當(dāng)前像素產(chǎn)生的影響不是等價(jià)的,所以距離不同的像素具有不同的權(quán)值,對(duì)算子結(jié)果產(chǎn)生的影響也不同。一般來說,距離越遠(yuǎn),產(chǎn)生的影響越小。
Isotropic Sobel算子:加權(quán)平均算子,權(quán)值反比于鄰點(diǎn)與中心點(diǎn)的距離,當(dāng)沿不同方向檢測(cè)邊緣時(shí)梯度幅度一致,就是通常所說的各向同性。
在邊沿檢測(cè)中,常用的一種模板是Sobel 算子。Sobel 算子有兩個(gè),一個(gè)是檢測(cè)水平邊沿的;另一個(gè)是檢測(cè)垂直平邊沿的。Sobel算子另一種形式是各向同性Sobel(Isotropic Sobel)算子,也有兩個(gè),一個(gè)是檢測(cè)水平邊沿的,另一個(gè)是檢測(cè)垂直平邊沿的。各向同性Sobel算子和普通Sobel算子相比,它的位置加權(quán)系數(shù)更為準(zhǔn)確,在檢測(cè)不同方向的邊沿時(shí)梯度的幅度一致。由于建筑物圖像的特殊性,我們可以發(fā)現(xiàn),處理該類型圖像輪廓時(shí),并不需要對(duì)梯度方向進(jìn)行運(yùn)算,所以程序并沒有給出各向同性Sobel算子的處理方法。
由于Sobel算子是濾波算子的形式,用于提取邊緣,可以利用快速卷積函數(shù),簡(jiǎn)單有效,因此應(yīng)用廣泛。美中不足的是,Sobel算子并沒有將圖像的主體與背景嚴(yán)格地區(qū)分開來,換言之就是Sobel算子沒有基于圖像灰度進(jìn)行處理,由于Sobel算子沒有嚴(yán)格地模擬人的視覺生理特征,所以提取的圖像輪廓有時(shí)并不能令人滿意。在觀測(cè)一幅圖像的時(shí)候,我們往往首先注意的是圖像與背景不同的部分,正是這個(gè)部分將主體突出顯示,基于該理論,我們可以給出閾值化輪廓提取算法,該算法已在數(shù)學(xué)上證明當(dāng)像素點(diǎn)滿足正態(tài)分布時(shí)所求解是最優(yōu)的。
上面的算子是利用一階導(dǎo)數(shù)的信息,屬于梯度算子范疇。
Laplacian算子:這是二階微分算子。其具有各向同性,即與坐標(biāo)軸方向無關(guān),坐標(biāo)軸旋轉(zhuǎn)后梯度結(jié)果不變。但是,其對(duì)噪聲比較敏感,所以,圖像一般先經(jīng)過平滑處理,因?yàn)槠交幚硪彩怯媚0暹M(jìn)行的,所以,通常的分割算法都是把Laplacian算子和平滑算子結(jié)合起來生成一個(gè)新的模板。
Laplacian算子一般不以其原始形式用于邊緣檢測(cè),因?yàn)槠渥鳛橐粋(gè)二階導(dǎo)數(shù),Laplacian算子對(duì)噪聲具有無法接受的敏感性;同時(shí)其幅值產(chǎn)生算邊緣,這是復(fù)雜的分割不希望有的結(jié)果;最后Laplacian算子不能檢測(cè)邊緣的方向;所以Laplacian在分割中所起的作用包括:(1)利用它的零交叉性質(zhì)進(jìn)行邊緣定位;(2)確定一個(gè)像素是在一條邊緣暗的一面還是亮的一面;一般使用的是高斯型拉普拉斯算子(Laplacian of a Gaussian,LoG),由于二階導(dǎo)數(shù)是線性運(yùn)算,利用LoG卷積一幅圖像與首先使用高斯型平滑函數(shù)卷積改圖像,然后計(jì)算所得結(jié)果的拉普拉斯是一樣的。所以在LoG公式中使用高斯函數(shù)的目的就是對(duì)圖像進(jìn)行平滑處理,使用Laplacian算子的目的是提供一幅用零交叉確定邊緣位置的圖像;圖像的平滑處理減少了噪聲的影響并且它的主要作用還是抵消由Laplacian算子的二階導(dǎo)數(shù)引起的逐漸增加的噪聲影響。
微分算子在圖像處理中扮演重要的角色,其算法實(shí)現(xiàn)簡(jiǎn)單,而且邊緣檢測(cè)的效果又較好,因此這些基本的微分算子是學(xué)習(xí)圖像處理過程中的必備方法,下面著重討論幾種常見的微分算子。
Sobel算子:其主要用于邊緣檢測(cè),在技術(shù)上它是以離散型的差分算子,用來運(yùn)算圖像亮度函數(shù)的梯度的近似值,缺點(diǎn)是Sobel算子并沒有將圖像的主題與背景嚴(yán)格地區(qū)分開來,換言之就是Sobel算子并沒有基于圖像灰度進(jìn)行處理,由于Sobel算子并沒有嚴(yán)格地模擬人的視覺生理特征,所以提取的圖像輪廓有時(shí)并不能令人滿意,算法具體實(shí)現(xiàn)很簡(jiǎn)單,就是3*3的兩個(gè)不同方向上的模板運(yùn)算,這里不再寫出。
Robert算子:根據(jù)任一相互垂直方向上的差分都用來估計(jì)梯度,Robert算子采用對(duì)角方向相鄰像素之差。
Prewitt算子:該算子與Sobel算子類似,只是權(quán)值有所變化,但兩者實(shí)現(xiàn)起來功能還是有差距的,據(jù)經(jīng)驗(yàn)得知Sobel要比Prewitt更能準(zhǔn)確檢測(cè)圖像邊緣。
Laplacian算子:拉普拉斯算子是一種二階微分算子,若只考慮邊緣點(diǎn)的位置而不考慮周圍的灰度差時(shí)可用該算子進(jìn)行檢測(cè)。對(duì)于階躍狀邊緣,其二階導(dǎo)數(shù)在邊緣點(diǎn)出現(xiàn)零交叉,并且邊緣點(diǎn)兩旁的像素的二階導(dǎo)數(shù)異號(hào)。
Canny算子:該算子功能比前面幾種都要好,但是它實(shí)現(xiàn)起來較為麻煩,Canny算子是一個(gè)具有濾波,增強(qiáng),檢測(cè)的多階段的優(yōu)化算子,在進(jìn)行處理前,Canny算子先利用高斯平滑濾波器來平滑圖像以除去噪聲,Canny分割算法采用一階偏導(dǎo)的有限差分來計(jì)算梯度幅值和方向,在處理過程中,Canny算子還將經(jīng)過一個(gè)非極大值抑制的過程,最后Canny算子還采用兩個(gè)閾值來連接邊緣。