fbpx
维基百科

索伯算子

索伯算子(Sobel operator)是圖像處理中的算子之一,有時又稱為索伯-費爾德曼算子索伯濾波器,在影像處理及電腦視覺領域中常被用來做邊緣檢測。索伯算子最早是由美國計算機科學家艾爾文·索伯及蓋瑞·費爾德曼(Gary Feldman)於1968年在史丹佛大學的人工智慧實驗室(SAIL)所提出,因此為了表揚他們的貢獻,而用他們的名字命名。在技術上,它是一離散性差分算子,用來運算圖像亮度函數的梯度之近似值。在圖像的任何一點使用此算子,索伯算子的運算將會產生對應的梯度向量或是其範數。概念上,索伯算子就是一個小且是整數的濾波器對整張影像在水平及垂直方向上做捲積,因此它所需的運算資源相對較少,另一方面,對於影像中的頻率變化較高的地方,它所得的梯度之近似值也比較粗糙。

公式 编辑

該算子包含兩組3x3的矩陣,分別為橫向及縱向,將之與圖像作平面卷積,即按所示方程式計算:

 

即可分別得出橫向及縱向的亮度差分近似值。如果以 代表原始圖像,  分別代表經橫向及縱向邊緣檢測的圖像,其公式如下:

 

圖像的每一個像素的橫向及縱向梯度近似值可用以下的公式結合,來計算梯度的大小。

 

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

 

以縱向邊緣為例,如果角度 等於零,即代表圖像的縱向邊緣右方较亮;若为  ,则左方较亮。

更正式來說 编辑

雖然索伯算子代表著相對沒那麼精準的影像梯度近似,但其品質也足夠在很多應用派上用場。更精確來說,對於每個點,它只用其亮度的值在周圍3x3的區域去近似該點的梯度,而且在近似的過程,它也只用整數去代表影像亮度的權重。

索伯算子在其他維度的延伸 编辑

索伯算子包含著兩個分開的運算:

  • 利用三角形函數濾波器來達到平滑化 :  
  • 一次微分的中央差值 :  

索伯算子在不同維度的表達形式, :

1D:  

2D:  

3D:  

4D:  

下面是一個三維的索伯算子在z軸的實例:

 

技術細節 编辑

索伯算子在實作上可以用很簡單的硬體和軟體: 只有該點的周圍八個點需要被計算,同時在梯度向量的近似上也都只牽涉到整數的計算,而且上述的兩個離散濾波器是可分解的:

 
 

因此 GxGy 可推導成

 

在特別的實作上,可分解的運算可能會有優勢因為在每個點的運算上會有少一些的算術運算。

應用捲積核K在像素群P上的虛擬碼可以表示成:

N(x,y) = Sum of { K(i,j).P(x-i,y-j)}, for i,j running from -1 to 1.

P代表著像素矩陣,所以N(x,y) 代表的應用捲積核K在像素群P後產生的矩陣

實例 编辑

經過索伯算子所產生的結果是一張二維的圖,代表的每個點的梯度。下圖中高梯度的地方會以白色的線表示。為了說明這一點,下方展示了在一张簡單的圖片上使用索伯算子的結果。

 
測試的灰階影像
 
經過標準化後的索伯算子(梯度)結果
 
經過標準化後的x軸方向梯度結果
 
經過標準化後的y軸方向梯度結果

下方的灰階影像說明了梯度的方向。紅色和黃色代表梯度角度是正的,相對地,藍色和青色代表梯度角度是負的。在圓的最左邊和最右邊,垂直的梯度角度為零是因為沒有區域的變化,而在圓的最頂部和底部,水平的梯度角度為零是因為沒有區域的變化。在圓的最頂部和底部,水平梯度角度變化分別是 −π/2 和π/2是因為沒有區域的變化。頂部的負梯度角度代表這條邊是從亮到暗的區域界線,而底部的正梯度角度代表這條邊是從暗到亮的區域界線。其他顯示為黑色的像素是因為附近完全沒有任何變化。值得注意的是,因為角度是對應到像素值的函數,因此可能一些微小的變化也可能會導致很大的角度變化。因此,些微的雜訊可能會對角度響應變化,而這通常是不樂見的情況。由上述可知,使用角度梯度在影像處理的應用時,需要在影像去噪多加著墨以減少錯誤。

 
黑色圓圈與白底的灰階影像
 
經過索伯算子得到的梯度方向結果

替代的運算子 编辑

索伯算子在轉動上沒有完美的對稱。因此沙爾想要改進這個特性。它曾提出了更大的5x5核心,不過後來最常被使用的是:

 

沙爾算子的概念源自於試圖在頻域上最小化加權的均方角度差,這個最佳化問題需要考量濾波器在數值上的一致性,因此它們是微分核。

另一個相似的改進方法是被法立德和西蒙切利所提出[1][2],它們的研究是針對更高次方的微分,相較於沙爾算子,這些濾波器沒有考量到數值的一致性。

除此之外,克龍也提出了利用數值方法的最佳化來設計微分濾波器[3]

2014年,哈斯特也利用任意的三次樣條曲線去設計微分濾波器[4],他的研究指出可以利用長度為7的濾波器作雙重濾波在三次樣條曲線及三角樣條上已取得精準的一次微分和二次微分。

另外一個相似的算子是卡雅利算子[5],概念也是來自於索伯算子,但它是個具有完美的旋轉對稱的3x3捲積濾波器。

在那之後的工作,沙爾又針對了光流的預測上提出了更好的濾波器[6],同一年,他也提出了更好的二次微分濾波器應用在動作預測上[7]。結果顯示使用的核心越大,就越有可能去逼近高斯濾波的微分。

結果比較 编辑

下圖是四張不同的梯度算子所預測出的測試圖的梯度強度

 
灰階原圖
 
索伯算子的結果
 
沙爾算子的結果
 
羅伯茨克羅斯算子的結果
 
普魯伊特算子的結果

伪代码 编辑

function sobel(A : as two dimensional image array) Gx=[-1 0 1; -2 0 2; -1 0 1] Gy=[-1 -2 -1; 0 0 0; 1 2 1] rows = size(A,1) columns = size(A,2) mag=zeros(A) for i=1:rows-2 for j=1:columns-2 S1=sum(sum(Gx.*A(i:i+2,j:j+2))) S2=sum(sum(Gy.*A(i:i+2,j:j+2))) mag(i+1,j+1)=sqrt(S1.^2+S2.^2) end for end for threshold = 70 %varies for application [0 255] output_image = max(mag,threshold) output_image(output_image==round(threshold))=0; return output_image end function 

参考文献 编辑

  1. ^ H. Farid and E. P. Simoncelli, Optimally Rotation-Equivariant Directional Derivative Kernels (页面存档备份,存于互联网档案馆), Int'l Conf Computer Analysis of Images and Patterns, pp. 207–214, Sep 1997.
  2. ^ H. Farid and E. P. Simoncelli, Differentiation of discrete multi-dimensional signals (页面存档备份,存于互联网档案馆), IEEE Trans Image Processing, vol.13(4), pp. 496–508, Apr 2004.
  3. ^ D. Kroon, 2009, Short Paper University Twente, Numerical Optimization of Kernel Based Image Derivatives (页面存档备份,存于互联网档案馆) .
  4. ^ A. Hast., "Simple filter design for first and second order derivatives by a double filtering approach" (页面存档备份,存于互联网档案馆), Pattern Recognition Letters, Vol. 42, no.1 June, pp. 65–71. 2014.
  5. ^ Dim, Jules R.; Takamura, Tamio. Alternative Approach for Satellite Cloud Classification: Edge Gradient Application. Advances in Meteorology. 2013-12-11, 2013: 1–8 [2018-07-04]. ISSN 1687-9309. doi:10.1155/2013/584816. (原始内容于2019-08-20) (英语). 
  6. ^ Scharr, Hanno, Optimal Filters for Extended Optical Flow [永久失效連結] In: Jähne, B., Mester, R., Barth, E., Scharr, H. (eds.) IWCM 2004. LNCS, vol. 3417, pp. 14–29. Springer, Heidelberg (2007).
  7. ^ Scharr, Hanno, OPTIMAL SECOND ORDER DERIVATIVE FILTER FAMILIES FOR TRANSPARENT MOTION ESTIMATION (页面存档备份,存于互联网档案馆) 15th European Signal Processing Conference (EUSIPCO 2007), Poznan, Poland, September 3–7, 2007.

参见 编辑

索伯算子, sobel, operator, 是圖像處理中的算子之一, 有時又稱為索伯, 費爾德曼算子或索伯濾波器, 在影像處理及電腦視覺領域中常被用來做邊緣檢測, 最早是由美國計算機科學家艾爾文, 索伯及蓋瑞, 費爾德曼, gary, feldman, 於1968年在史丹佛大學的人工智慧實驗室, sail, 所提出, 因此為了表揚他們的貢獻, 而用他們的名字命名, 在技術上, 它是一離散性差分算子, 用來運算圖像亮度函數的梯度之近似值, 在圖像的任何一點使用此算子, 的運算將會產生對應的梯度向量或是其範數, 概念. 索伯算子 Sobel operator 是圖像處理中的算子之一 有時又稱為索伯 費爾德曼算子或索伯濾波器 在影像處理及電腦視覺領域中常被用來做邊緣檢測 索伯算子最早是由美國計算機科學家艾爾文 索伯及蓋瑞 費爾德曼 Gary Feldman 於1968年在史丹佛大學的人工智慧實驗室 SAIL 所提出 因此為了表揚他們的貢獻 而用他們的名字命名 在技術上 它是一離散性差分算子 用來運算圖像亮度函數的梯度之近似值 在圖像的任何一點使用此算子 索伯算子的運算將會產生對應的梯度向量或是其範數 概念上 索伯算子就是一個小且是整數的濾波器對整張影像在水平及垂直方向上做捲積 因此它所需的運算資源相對較少 另一方面 對於影像中的頻率變化較高的地方 它所得的梯度之近似值也比較粗糙 目录 1 公式 2 更正式來說 3 索伯算子在其他維度的延伸 4 技術細節 5 實例 6 替代的運算子 7 結果比較 8 伪代码 9 参考文献 10 参见公式 编辑該算子包含兩組3x3的矩陣 分別為橫向及縱向 將之與圖像作平面卷積 即按所示方程式計算 a b c d e f g h i 1 2 3 4 5 6 7 8 9 2 2 i 1 h 2 g 3 f 4 e 5 d 6 c 7 b 8 a 9 displaystyle begin aligned amp left begin bmatrix a amp b amp c d amp e amp f g amp h amp i end bmatrix begin bmatrix 1 amp 2 amp 3 4 amp 5 amp 6 7 amp 8 amp 9 end bmatrix right 2 2 amp i cdot 1 h cdot 2 g cdot 3 amp f cdot 4 e cdot 5 d cdot 6 amp c cdot 7 b cdot 8 a cdot 9 end aligned nbsp 即可分別得出橫向及縱向的亮度差分近似值 如果以A displaystyle mathbf A nbsp 代表原始圖像 G x displaystyle mathbf G x nbsp 及G y displaystyle mathbf G y nbsp 分別代表經橫向及縱向邊緣檢測的圖像 其公式如下 G x 1 0 1 2 0 2 1 0 1 A and G y 1 2 1 0 0 0 1 2 1 A displaystyle mathbf G x begin bmatrix 1 amp 0 amp 1 2 amp 0 amp 2 1 amp 0 amp 1 end bmatrix mathbf A quad mbox and quad mathbf G y begin bmatrix 1 amp 2 amp 1 0 amp 0 amp 0 1 amp 2 amp 1 end bmatrix mathbf A nbsp 圖像的每一個像素的橫向及縱向梯度近似值可用以下的公式結合 來計算梯度的大小 G G x 2 G y 2 displaystyle mathbf G sqrt mathbf G x 2 mathbf G y 2 nbsp 然後可用以下公式計算梯度方向 8 arctan G y G x displaystyle mathbf Theta operatorname arctan left mathbf G y over mathbf G x right nbsp 以縱向邊緣為例 如果角度8 displaystyle Theta nbsp 等於零 即代表圖像的縱向邊緣右方较亮 若为 p displaystyle pi nbsp 则左方较亮 更正式來說 编辑雖然索伯算子代表著相對沒那麼精準的影像梯度近似 但其品質也足夠在很多應用派上用場 更精確來說 對於每個點 它只用其亮度的值在周圍3x3的區域去近似該點的梯度 而且在近似的過程 它也只用整數去代表影像亮度的權重 索伯算子在其他維度的延伸 编辑索伯算子包含著兩個分開的運算 利用三角形函數濾波器來達到平滑化 h 1 1 h 0 2 h 1 1 displaystyle h 1 1 h 0 2 h 1 1 nbsp 一次微分的中央差值 h 1 1 h 0 0 h 1 1 displaystyle h 1 1 h 0 0 h 1 1 nbsp 索伯算子在不同維度的表達形式 x y z t 0 1 1 displaystyle x y z t in left 0 1 1 right nbsp 1D h x x h x displaystyle h x x h x nbsp 2D h x x y h x h y displaystyle h x x y h x h y nbsp 3D h x x y z h x h y h z displaystyle h x x y z h x h y h z nbsp 4D h x x y z t h x h y h z h t displaystyle h x x y z t h x h y h z h t nbsp 下面是一個三維的索伯算子在z軸的實例 h z 1 1 2 1 2 4 2 1 2 1 h z 0 0 0 0 0 0 0 0 0 0 h z 1 1 2 1 2 4 2 1 2 1 displaystyle h z 1 begin bmatrix 1 amp 2 amp 1 2 amp 4 amp 2 1 amp 2 amp 1 end bmatrix quad h z 0 begin bmatrix 0 amp 0 amp 0 0 amp 0 amp 0 0 amp 0 amp 0 end bmatrix quad h z 1 begin bmatrix 1 amp 2 amp 1 2 amp 4 amp 2 1 amp 2 amp 1 end bmatrix nbsp 技術細節 编辑索伯算子在實作上可以用很簡單的硬體和軟體 只有該點的周圍八個點需要被計算 同時在梯度向量的近似上也都只牽涉到整數的計算 而且上述的兩個離散濾波器是可分解的 1 0 1 2 0 2 1 0 1 1 2 1 1 0 1 1 1 1 1 1 1 1 1 displaystyle begin bmatrix 1 amp 0 amp 1 2 amp 0 amp 2 1 amp 0 amp 1 end bmatrix begin bmatrix 1 2 1 end bmatrix begin bmatrix 1 amp 0 amp 1 end bmatrix begin bmatrix 1 1 end bmatrix begin bmatrix 1 1 end bmatrix begin bmatrix 1 amp 1 end bmatrix begin bmatrix 1 amp 1 end bmatrix nbsp 1 2 1 0 0 0 1 2 1 1 0 1 1 2 1 1 1 1 1 1 1 1 1 displaystyle begin bmatrix 1 amp 2 amp 1 0 amp 0 amp 0 1 amp 2 amp 1 end bmatrix begin bmatrix 1 0 1 end bmatrix begin bmatrix 1 amp 2 amp 1 end bmatrix begin bmatrix 1 1 end bmatrix begin bmatrix 1 1 end bmatrix begin bmatrix 1 amp 1 end bmatrix begin bmatrix 1 amp 1 end bmatrix nbsp 因此 Gx 和 Gy 可推導成 G x 1 2 1 1 0 1 A and G y 1 0 1 1 2 1 A displaystyle mathbf G x begin bmatrix 1 2 1 end bmatrix left begin bmatrix 1 amp 0 amp 1 end bmatrix mathbf A right quad mbox and quad mathbf G y begin bmatrix 1 0 1 end bmatrix left begin bmatrix 1 amp 2 amp 1 end bmatrix mathbf A right nbsp 在特別的實作上 可分解的運算可能會有優勢因為在每個點的運算上會有少一些的算術運算 應用捲積核K在像素群P上的虛擬碼可以表示成 N x y Sum of K i j P x i y j for i j running from 1 to 1 P代表著像素矩陣 所以N x y 代表的應用捲積核K在像素群P後產生的矩陣實例 编辑經過索伯算子所產生的結果是一張二維的圖 代表的每個點的梯度 下圖中高梯度的地方會以白色的線表示 為了說明這一點 下方展示了在一张簡單的圖片上使用索伯算子的結果 nbsp 測試的灰階影像 nbsp 經過標準化後的索伯算子 梯度 結果 nbsp 經過標準化後的x軸方向梯度結果 nbsp 經過標準化後的y軸方向梯度結果下方的灰階影像說明了梯度的方向 紅色和黃色代表梯度角度是正的 相對地 藍色和青色代表梯度角度是負的 在圓的最左邊和最右邊 垂直的梯度角度為零是因為沒有區域的變化 而在圓的最頂部和底部 水平的梯度角度為零是因為沒有區域的變化 在圓的最頂部和底部 水平梯度角度變化分別是 p 2 和p 2是因為沒有區域的變化 頂部的負梯度角度代表這條邊是從亮到暗的區域界線 而底部的正梯度角度代表這條邊是從暗到亮的區域界線 其他顯示為黑色的像素是因為附近完全沒有任何變化 值得注意的是 因為角度是對應到像素值的函數 因此可能一些微小的變化也可能會導致很大的角度變化 因此 些微的雜訊可能會對角度響應變化 而這通常是不樂見的情況 由上述可知 使用角度梯度在影像處理的應用時 需要在影像去噪多加著墨以減少錯誤 nbsp 黑色圓圈與白底的灰階影像 nbsp 經過索伯算子得到的梯度方向結果替代的運算子 编辑索伯算子在轉動上沒有完美的對稱 因此沙爾想要改進這個特性 它曾提出了更大的5x5核心 不過後來最常被使用的是 3 0 3 10 0 10 3 0 3 3 10 3 0 0 0 3 10 3 displaystyle begin bmatrix 3 amp 0 amp 3 10 amp 0 amp 10 3 amp 0 amp 3 end bmatrix begin bmatrix 3 amp 10 amp 3 0 amp 0 amp 0 3 amp 10 amp 3 end bmatrix nbsp 沙爾算子的概念源自於試圖在頻域上最小化加權的均方角度差 這個最佳化問題需要考量濾波器在數值上的一致性 因此它們是微分核 另一個相似的改進方法是被法立德和西蒙切利所提出 1 2 它們的研究是針對更高次方的微分 相較於沙爾算子 這些濾波器沒有考量到數值的一致性 除此之外 克龍也提出了利用數值方法的最佳化來設計微分濾波器 3 2014年 哈斯特也利用任意的三次樣條曲線去設計微分濾波器 4 他的研究指出可以利用長度為7的濾波器作雙重濾波在三次樣條曲線及三角樣條上已取得精準的一次微分和二次微分 另外一個相似的算子是卡雅利算子 5 概念也是來自於索伯算子 但它是個具有完美的旋轉對稱的3x3捲積濾波器 在那之後的工作 沙爾又針對了光流的預測上提出了更好的濾波器 6 同一年 他也提出了更好的二次微分濾波器應用在動作預測上 7 結果顯示使用的核心越大 就越有可能去逼近高斯濾波的微分 結果比較 编辑下圖是四張不同的梯度算子所預測出的測試圖的梯度強度 nbsp 灰階原圖 nbsp 索伯算子的結果 nbsp 沙爾算子的結果 nbsp 羅伯茨克羅斯算子的結果 nbsp 普魯伊特算子的結果伪代码 编辑function sobel A as two dimensional image array Gx 1 0 1 2 0 2 1 0 1 Gy 1 2 1 0 0 0 1 2 1 rows size A 1 columns size A 2 mag zeros A for i 1 rows 2 for j 1 columns 2 S1 sum sum Gx A i i 2 j j 2 S2 sum sum Gy A i i 2 j j 2 mag i 1 j 1 sqrt S1 2 S2 2 end for end for threshold 70 varies for application 0 255 output image max mag threshold output image output image round threshold 0 return output image end function参考文献 编辑 H Farid and E P Simoncelli Optimally Rotation Equivariant Directional Derivative Kernels 页面存档备份 存于互联网档案馆 Int l Conf Computer Analysis of Images and Patterns pp 207 214 Sep 1997 H Farid and E P Simoncelli Differentiation of discrete multi dimensional signals 页面存档备份 存于互联网档案馆 IEEE Trans Image Processing vol 13 4 pp 496 508 Apr 2004 D Kroon 2009 Short Paper University Twente Numerical Optimization of Kernel Based Image Derivatives 页面存档备份 存于互联网档案馆 A Hast Simple filter design for first and second order derivatives by a double filtering approach 页面存档备份 存于互联网档案馆 Pattern Recognition Letters Vol 42 no 1 June pp 65 71 2014 Dim Jules R Takamura Tamio Alternative Approach for Satellite Cloud Classification Edge Gradient Application Advances in Meteorology 2013 12 11 2013 1 8 2018 07 04 ISSN 1687 9309 doi 10 1155 2013 584816 原始内容存档于2019 08 20 英语 Scharr Hanno Optimal Filters for Extended Optical Flow 永久失效連結 In Jahne B Mester R Barth E Scharr H eds IWCM 2004 LNCS vol 3417 pp 14 29 Springer Heidelberg 2007 Scharr Hanno OPTIMAL SECOND ORDER DERIVATIVE FILTER FAMILIES FOR TRANSPARENT MOTION ESTIMATION 页面存档备份 存于互联网档案馆 15th European Signal Processing Conference EUSIPCO 2007 Poznan Poland September 3 7 2007 参见 编辑 nbsp 计算机科学主题 數字圖像處理 邊緣檢測 圖像梯度 取自 https zh wikipedia org w index php title 索伯算子 amp oldid 74453272, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。