【问题标题】:Calculating image gradient计算图像梯度
【发布时间】:2015-03-03 22:04:41
【问题描述】:

为了您的方便,我会尽量简短。 我正在尝试计算某些图像渐变的每个像素的灰度值。

据我所知,G(x,y)(梯度图像中的像素 x,y)可以通过两种方式计算:

1. G(x,y) = sqrt(dx(x,y) * dx(x,y) + dy(x,y) * (dy(x,y))
2. G(x,y) = |dx(x,y)| + |dy(x,y)|

我试图了解第一个如何导致 [0, 255] 中的值,例如 dx(x,y) = 255, dy(x,y) = 255 将导致 ~360,这灰度未定义。

另外,第二种方法是如何定义的?是什么意思|dx(x,y)|当 dx(x,y) 属于 [0, 255] 时,为正?

谢谢!

【问题讨论】:

    标签: java image graphics gradient derivative


    【解决方案1】:

    这两种方法都不能保证每个像素都在 [0, 255] 范围内。如果您希望所有像素都在 [0, 255] 中,您可能需要在找到渐变后 normalize 您的图像。

    第二种方法是绝对差的总和。求绝对值比求平方根快,所以方法 2 会比方法 1 快。

    【讨论】:

    • Dx(x,y) 表示像素在x方向的导数。
    猜你喜欢
    • 2014-04-02
    • 2018-04-13
    • 2020-09-12
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    相关资源
    最近更新 更多