Sobel邊緣檢測演算法

2021-05-22 19:33:25 字數 1871 閱讀 9909

索貝爾運算元

sobel operator

)主要用作邊緣檢測,

在技術上,它是一離散性差分運算元,用來運算影象亮度函式的灰度之近似值。在影象的任何一點使用此運算元,將會產生對應的灰度向量或是其法向量

sobel

卷積因子為:

該運算元包含兩組

3x3的矩陣,分別為橫向及縱向,將之與影象作平面卷積,即可分別得出橫向及縱向的亮度差分近似值。如果以

a代表原始影象,gx及

gy分別代表經橫向及縱向邊緣檢測的影象灰度值,其公式如下:

具體計算如下:

gx = (-1)*f(x-1, y-1) + 0*f(x,y-1) + 1*f(x+1,y-1)

+(-2)*f(x-1,y) + 0*f(x,y)+2*f(x+1,y)

+(-1)*f(x-1,y+1) + 0*f(x,y+1) + 1*f(x+1,y+1)

= [f(x+1,y-1)+2*f(x+1,y)+f(x+1,y+1)]-[f(x-1,y-1)+2*f(x-1,y)+f(x-1,y+1)]

gy =1* f(x-1, y-1) + 2*f(x,y-1)+ 1*f(x+1,y-1)

+0*f(x-1,y) 0*f(x,y) + 0*f(x+1,y)

+(-1)*f(x-1,y+1) + (-2)*f(x,y+1) + (-1)*f(x+1, y+1)

= [f(x-1,y-1) + 2f(x,y-1) + f(x+1,y-1)]-[f(x-1, y+1) + 2*f(x,y+1)+f(x+1,y+1)] 其中

f(a,b),

表示影象

(a,b)

點的灰度值;

影象的每乙個畫素的橫向及縱向灰度值通過以下公式結合,來計算該點灰度的大小:

通常,為了提高效率

使用不開平方的近似值:

如果梯度

g大於某一閥值

則認為該點

(x,y)

為邊緣點。

然後可用以下公式計算梯度方向:

sobel

運算元根據畫素點上下、左右鄰點灰度加權差,在邊緣處達到極值這一現象檢測邊緣。對雜訊具有平滑作用,提供較為精確的邊緣方向資訊,邊緣定位精度不夠高。當對精度要求不是很高時,是一種較為常用的邊緣檢測方法。

附帶知識:

普利維特運算元

(prewitt operate)

sobel

邊緣檢測外

還有prewitt

運算元,它的卷積因子如下:

其他計算

和sobel

差不多;

prewitt

運算元利用畫素點上下、左右鄰點灰度差,在邊緣處達到極值檢測邊緣。對雜訊具有平滑作用,定位精度不夠高。

羅伯茨交叉邊緣檢測(

roberts cross operator

卷積因子如下:

灰度公式為:

近似公式為:

具體計算如下:

g(x,y)=abs(f(x,y)-f(x+1,y+1))+abs(f(x,y+1)-f(x+1,y))

灰度方向

計算公式為:

roberts

運算元採用對角線方向相鄰兩畫素之差近似梯度幅值檢測邊緣。檢測水平和垂直邊緣的效果好於斜向邊緣,定位精度高,對雜訊敏感

其他邊緣檢測技術:

Sobel邊緣檢測演算法

索貝爾運算元 sobel operator 主要用作邊緣檢測,在技術上,它是一離散性差分運算元,用來運算影象亮度函式的灰度之近似值。在影象的任何一點使用此運算元,將會產生對應的灰度向量或是其法向量 sobel卷積因子為 該運算元包含兩組3x3的矩陣,分別為橫向及縱向,將之與影象作平面卷積,即可分別得...

Sobel邊緣檢測演算法

sobel邊緣檢測演算法 索貝爾運算元 sobel operator 主要用作邊緣檢測,在技術上,它是一離散性差分運算元,用來運算影象亮度函式的灰度之近似值。在影象的任何一點使用此運算元,將會產生對應的灰度向量或是其法向量 sobel卷積因子為 該運算元包含兩組3x3的矩陣,分別為橫向及縱向,將之與...

Sobel邊緣檢測演算法

索貝爾運算元 sobel operator 主要用作邊緣檢測,在技術上,它是一離散性差分運算元,用來運算影象亮度函式的灰度之近似值。在影象的任何一點使用此運算元,將會產生對應的灰度向量或是其法向量 sobel卷積因子為 該運算元包含兩組3x3的矩陣,分別為橫向及縱向,將之與影象作平面卷積,即可分別得...