Sobel原理及计算过程详解

索贝尔算子(Sobel operator)主要用作边缘检测,在技术上,它是一离散性差分算子,用来运算图像亮度函数的灰度近似值。Soble卷积因子为:

该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。如果以A代表原始图像,Gx及Gy分别代表经横向及纵向边缘检测的图像灰度值,计算公式如下:

图像的每一个像素的横向及纵向灰度值通过以下公式结合,来计算该点灰度的大小:

G =√Gx² +  Gy²

通常,为了提高效率使用不开平方的近似值:

|G| = |Gx| + |Gy|

具体计算如下:

首先,我们需要构建一个Sobel算子,通常是一个 3x3 的矩阵。Sobel算子可以分别计算水平和垂直方向的梯度值,然后将两者合并得到总梯度值。下面是要计算的四点乘四点的图像矩阵:

对于边缘上的点,由于没有足够的邻居像素,我们无法使用Sobel算子来计算梯度值。所以,我们假设选择图像矩阵中的点A(1, 1),即第二行第二列的元素,对应的灰度值为5。接下来,我们将使用Sobel算子计算这个点的梯度值。

A(1,1)

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

19

水平方向梯度值 = Gx * A11

               = (-1*0 + 0*1 + 1*2) + (-2*4 + 0*5 + 2*6) + (-1*8 + 0*9 + 1*10)

               = (0 + 0 + 2) + (-8 + 0 + 12) + (-8 + 0 + 10)

               = 2 + 4 + 2

               = 8

垂直方向梯度值 = Gy * A11              

 = (-1*0 + -2*1 + -1*2) + (0*4 + 0*5 + 0*6) + (1*8 + 2*9 + 1*10)

               = (0 - 2 - 2) + (0 + 0 + 0) + (8 + 18 + 10)

               = -4 + 0 + 36

               = 32

G11 = 8 + 32 = 40

以此类推,下一个点就是A(1,2)如下:

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

19

水平方向梯度值 = Gx * A12

               = (-1*1 + 0*2 + 1*3) + (-2*5 + 0*6 + 2*7) + (-1*9 + 0*10 + 1*11)

               = (-1 + 0 + 3) + (-10 + 0 + 14) + (-9 + 0 + 11)

               = 2 + 4 + 2

               = 8

垂直方向梯度值 = Gy * A12              

               = (-1*1 + -2*2 + -1*3) + (0*5 + 0*6 + 0*7) + (1*9 + 2*10 + 1*11)

               = (-1 - 4 - 3) + (0 + 0 + 0) + (9 + 20 + 11)

               = -8 + 0 + 40

               = 32            

G12 = 8 + 32 = 40

A(2,1)如下:

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

19

水平方向梯度值 = Gx * A21

               = (-1*4 + 0*5 + 1*6) + (-2*8 + 0*9 + 2*10) + (-1*12 + 0*13 + 1*14)

               = (-4 + 0 + 6) + (-16 + 0 + 20) + (-12 + 0 + 14)

               = 2 + 4 + 2

               = 8

垂直方向梯度值 =  Gy * A21

               = (-1*4 + -2*5 + -1*6) + (0*8 + 0*9 + 0*10) + (1*12 + 2*13 + 1*14)

               = (-4 - 10 - 6) + (0 + 0 + 0) + (12 + 26 + 14)

               = -20 + 0 + 52

   =32

G21  = 8 + 32 = 40

A(2,2)如下:

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

19

   水平方向梯度值 = Gx * A22

               = (-1*5 + 0*6 + 1*7) + (-2*9 + 0*10 + 2*11) + (-1*13 + 0*14 + 1*19)

               = (-5 + 0 + 7) + (-18 + 0 + 22) + (-13 + 0 + 19)

               = 2 + 4 + 6

               = 12

垂直方向梯度值 = Gy * A22

               = (-1*5 + -2*6 + -1*7) + (0*9 + 0*10 + 0*11) + (1*13 + 2*14 + 1*19)

               = (-5 - 12 - 7) + (0 + 0 + 0) + (13 + 28 + 19)

               = -24 + 0 + 60

               = 36

G22  = 12 + 36 = 48

总结:计算出各点的最终数据之后将他们进行累加得到最终反馈给上位机的图像数据,所以这幅4X4的图像值最终为:

G = G11 + G12 + G21 + G22

= 40 + 40 + 40 + 48

=168

  • 8
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值