5

有没有人可以帮我解释“边缘点可能通过梯度模块的最大值定位,边缘轮廓的方向与梯度的方向正交。”

4

2 回答 2

20

Paul R 已经给了你一个答案,所以我将添加一些图像来帮助说明这一点。

在图像处理中,当我们提到“渐变”时,我们通常指的是一系列像素上的亮度变化。您可以使用 GIMP 或 Photoshop 等软件创建渐变图像。

这是从黑色(左)到白色(右)的线性渐变示例:

线性渐变

梯度是“线性的”,意味着强度的变化与像素之间的距离成正比。这个特殊的渐变是平滑的,我们不会说这张图片中有“边缘”。

如果我们绘制渐变的亮度与 X 位置(从左到右)的关系,我们会得到如下图:

线性梯度图

这是背景上的对象的示例。边缘有点模糊,但这在真实物体的图像中很常见。从一个像素到下一个像素,像素亮度不会从黑色变为白色:存在包含灰色阴影的渐变。这并不明显,因为您通常必须放大照片才能看到模糊的边缘。

白色背景上的黑盒子

在图像处理中,我们可以通过查看从一种亮度到另一种亮度的急剧过渡(急剧渐变)来找到这些边缘。如果我们放大该框的左上角,我们可以看到仅在几个像素上就有从白色到黑色的过渡。这种过渡也是一种渐变。不同之处在于渐变位于两个恒定颜色区域之间:左侧为白色,右侧为黑色。

框的放大角

红色箭头显示了从背景到前景的渐变方向:像素在左侧是亮的,当我们向 +x 方向移动时,像素变得更暗。如果我们绘制沿箭头采样的亮度,我们将得到如下图,红色方块代表特定像素的亮度。这种变化不是线性的,而是看起来像钟形曲线的一侧:

边缘图

蓝色线段是最陡的曲线斜率的粗略近似值。“真实”边缘点是沿对应于对象边缘的梯度的斜率最陡的点。

可以使用水平和垂直 Sobel 滤波器计算梯度大小和方向。然后,您可以将梯度的方向计算为:

gradientAngle = arctan(gradientY / gradientX)

当它垂直于对象的边缘时,渐变将是最陡峭的。

如果你看一些真实场景的黑白图像,你可以放大,查看单个像素值,并很好地了解这些原则是如何应用的。

于 2012-01-15T21:39:11.993 回答
3

物体边缘通常会导致强度的阶跃变化。因此,如果您采用强度的导数,它将在边缘具有较大的(正或负)值,而在其他地方具有较小的值。如果您可以识别最陡梯度的方向,那么这将与对象边缘成直角(正交)。

于 2012-01-12T15:04:20.833 回答