非最大抑制
computer-vision
6
0

我们了解到,可以使用atan(dy/dx)来获得渐变方向, atan(dy/dx)是与边缘正交的方向。现在我们有一个家庭作业,我们应该将此方向离散为四个类别(x和y方向以及两个对角线),然后在最佳匹配方向上检查两个像素邻域以进行非最大抑制

我没有完全得到解决方案。显然,我们有四种情况:

  1. abs(angle) < pi/8 ,因此渐变(大致)指向x方向,因此我们检查img(i, j-1)img(i, j+1) (假设图像原点在顶部剩下)

  2. 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) ,看起来像是正交对角线。

其他两种情况是等效的。我尝试更改此设置,但是边缘确实看起来很奇怪,因此这似乎是正确的,但我不明白为什么。

谁可以给我解释一下这个?

参考资料:
Stack Overflow
收藏
评论
共 2 个回答
高赞 时间 活跃

这是Canny Edge Detection流程中使用的Non Maxima Suppression的python实现。

他们专注于北方和南方,东北和西南,东方和西方以及东南和西北。然后决定保留哪些值。

希望它能帮助需要NMS的人找到更好的优势。

收藏
评论

非最大抑制是一种消除不位于重要边缘的点的方法。在第一种情况下,如果坡度在给定点处接近零度,则意味着该边在北方或南方,如果该点的大小大于左右两个点的大小(如您的示例)。在第二种情况下,您要检查45度的坡度,因此边缘为135度,因此如果该点大于沿坡度方向的点,则保持该点,即(-1,-1)和(1 ,1)。旋转坐标系不会对此产生影响。

在此处输入图片说明

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号