1

用于检测和平滑水平和垂直边缘的两个算子如下所示:

[-1 0 1]
[-2 0 2]
[-1 0 1]

[-1 -2 -1]
[ 0  0  0]
[ 1  2  1]

但是经过多次谷歌搜索,我仍然不知道这些运算符来自哪里。如果有人能告诉我它们是如何派生的,我将不胜感激。

4

2 回答 2

2

该公式是很久以前由 Irwin Sobel 提出的。我想到了 1974 年。这里有一个关于这个主题的精彩页面

卷积要检测梯度的像素周围的 9 个像素的主要优点是,这个简单的算子非常快,可以通过移位和添加低成本硬件来完成。

它们不是世界上最好的边缘检测器——谷歌 Canny 边缘检测器有更好的用途,但它们速度快并且适用于许多简单的应用程序。

于 2013-09-09T19:40:25.203 回答
0

因此,空间滤波器,如 Sobel 核,通过在图像上“滑动”核来应用(这称为卷积)。如果我们采用这个内核:

[-1 0 1]
[-2 0 2]
[-1 0 1]

应用 Sobel 算子后,每个结果像素得到一个:

  • 如果右侧的像素亮而左侧的像素暗,则为高(正)值
  • 如果右侧的像素是暗的而左侧的像素是亮的,则为低(负)值。

这是因为在离散的 2D 卷积中,结果是每个核值的总和乘以相应的图像像素。因此,垂直边缘会导致该值具有较大的负值或正值,具体取决于边缘梯度的方向。如果我们想将边缘显示为白色并且不关心边缘方向,我们可以将绝对值和缩放到区间 [0, 1]。

这对其他内核的工作方式相同,除了它会找到水平边缘。

于 2013-09-12T16:08:48.183 回答