有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java计算图像梯度

为了您的方便,我会尽量简短。 我试着计算一些图像梯度的每个像素的灰度值

据我所知,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)|

我试图理解第一个值是如何产生[0255]中的值的,例如dx(x,y)=255,dy(x,y)=255将产生~360,这在灰度中是未定义的

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

谢谢大家!


共 (1) 个答案

  1. # 1 楼答案

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

    第二种方法是绝对差之和。求绝对值比求平方根快,因此方法2比方法1快