梯度向量的长度

时间:2014-03-04 11:27:17

标签: opencv math image-processing gradient

我需要澄清一件简单的事情。 我需要对数学进行一些更新: 在一个圆圈中,渐变的长度应该是半径? 或者我们只使用渐变来获得方向?

在我阅读有关图像处理中的渐变后,我得到了这个问题: 我已阅读this回答和this有关如何获取图像渐变的信息,当然还有here

我不明白幅度是否代表像素数?或者它只代表特定点强度变化的强度。

以下图片是渐变的大小: the magnitude of the gradient:

我运行代码并观察数字的大小,数字显然不在图像宽度\高度的范围内。

我,等待一个简单的澄清。 谢谢!

1 个答案:

答案 0 :(得分:1)

在数学上说,梯度幅度,或者换句话说,梯度矢量的范数,表示2D信号的导数(即斜率)。这在维基百科给出的定义中非常清楚:

Gradient definition

这里,f是2D信号, x ^ y ^ (这个是丑陋的,我会注意到它们 u x u y 以下)分别是单位向量水平和垂直方向。

在图像的上下文中,2D信号(即图像)是离散的而不是连续的,因此导数近似于当前像素的强度与强度之间的差异。前一个像素,在所考虑的方向上(实际上,有几种方法来逼近导数,但让我们保持简单)。因此,我们可以通过以下数量逼近梯度:

渐变 f (u,v)= [f(u,v)-f(u-1,v)]。 u x + [f(u,v)-f(u,v-1)]。的Úý

在这种情况下,梯度幅度如下:

|| 渐变 f (u,v)|| = square_root {[f(u,v)-f(u-1,v)]²+ [f(u,v)-f(u,v-1)]²}

总结,渐变幅度是给定点局部强度变化的度量并且与半径无关,也与宽度/高度无关图像。