我们已经了解到,您可以获得与atan(dy/dx)
边缘正交的方向的梯度方向。现在我们有一个作业,我们应该将此方向离散化为四个类别(x 和 y 方向以及两个对角线),然后检查最佳匹配方向上的两个像素邻居以进行非最大抑制。
我没有完全得到解决方案。显然我们有四种情况:
abs(angle) < pi/8
,所以梯度(大致)指向x方向,因此我们检查img(i, j-1)
和img(i, j+1)
(假设图像原点在左上角)angle > pi/8 && angle <= 3*pi/8
,所以梯度指向右上角。现在我认为我们需要检查img(i-1, j+1)
,img(i+1, j-1)
但我们检查img(i-1, j-1)
并且img(i+1, j+1)
看起来像正交对角线。
其他两种情况是等价的。我试图改变这一点,但边缘看起来真的很奇怪,所以这似乎是正确的,但我不明白为什么。
谁可以给我解释一下这个?