【发布时间】:2012-12-01 12:36:56
【问题描述】:
我们了解到,您可以使用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),这似乎是正交对角线。
其他两种情况是等价的。我试图改变这一点,但边缘看起来很奇怪,所以这似乎是正确的,但我不明白为什么。
谁能给我解释一下?
【问题讨论】:
-
非最大抑制是一种消除不位于重要边缘的点的方法。在第一种情况下,如果给定点的梯度接近零度,则意味着边缘在北或南,如果该点的大小大于左右两侧的点的大小(如您的示例中所示)。在第二种情况下,您正在检查 45 度的梯度,因此边缘为 135 度,因此如果该点大于沿梯度方向的点,即 (-1, -1) 和 (1, 1).
-
是的,它是沿着梯度方向的。又名 45°。到右上角。我不确定您使用的是哪个坐标系。 (-1, -1) 和 (1, 1) 看起来像是一个经典的笛卡尔系统,它的oritin 在左下角。我们在 matlab 中这样做了,所以图像原点在左上角,因此看起来我们检查了边缘方向。又名 135°。到左上角。
-
这显然与我使用的坐标系相同,因为我说渐变是 45 度,并且 (-1, -1), (1, 1) 沿着这个渐变。这在笛卡尔平面中结果是相同的,在这种情况下与原点的位置无关。我之前的回答是,你有什么并发症?是否与 (-1, -1) 高于您的原点有关?
-
这张图i.imgur.com/9lpvf.png 有帮助吗?
-
我认为这只是 matlab 和笛卡尔坐标之间的混淆。正如我所说,matlab 使用您绘图右侧的系统,但由于某种原因,我对齐了左侧系统中的角度......
标签: computer-vision non-maximum-suppression