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 楼答案
这两种方法都不能保证每个像素都在[0255]范围内。如果希望所有像素都位于[0255]中,则可能需要在找到渐变后normalize图像
第二种方法是绝对差之和。求绝对值比求平方根快,因此方法2比方法1快