Canny Edge检测器的局限性是什么?


18

关于使用边缘检测的边缘检测算法和应用的大多数文献,都引用了Canny的边缘检测器。如此之多,以至于看起来几乎是边缘检测的“解决方案”。当然,它将在平衡噪声和保留边缘方面做得最好。

但是,出于好奇,Canny的边缘检测器是否值得关注?还是在Canny最好的应用领域?

在这种情况下,更快的实现并不是真正的问题。边缘检测器好坏的重点应该在于所生成边缘的质量和实用性。

另外,我确实不是在关注特定于实现的问题。我正在寻找算法固有的更多理论限制或特征。


有趣的是,此问题是分割叶脉的最佳方法吗?所需的边缘检测。显示的结果之一是Canny,看起来不太好。虽然,很多方面都可能是实现问题,而Canny显然是局限性!有什么看法吗?
Dipan Mehta'3

请查看我的答案(dsp.stackexchange.com/questions/1714/…),它显示的结果比他从Canny得到的结果更好。
盖尔滕2012年

可能的(部分)欺骗:dsp.stackexchange.com/questions/74/…(或至少相关)。问题本身几乎是相同的(部分),答案与该问题的答案有些不同。
Geerten 2012年

1
@DipanMehta:那么不应该使用Canny边缘检测器来检测不是边缘的东西吗?:)
endolith 2012年

Answers:


19

根据我的经验,以下几点是限制:

  • 结果为二进制。有时您需要测量“多少”边缘符合边缘标准(例如,强度图像来自Sobel幅度边缘检测器)
  • 参数引线无限的调整用于获取只是量了较好的效果。
  • 您仍然需要连接生成的边缘以提取出完整的边缘,这对于人眼和心灵而言似乎是显而易见的。
  • 同样由于高斯平滑:边缘的位置可能不正确,具体取决于高斯核的大小。

  • 该方法存在转角和结点问题:

    • 高斯平滑使它们模糊不清,使它们更难检测(边缘本身也一样)
    • 角像素为相邻像素的方向错误,留下了开放的边缘,并且缺少连接

这最后一个问题可以通过SUSAN方法解决,该方法可以更好地连接边线,并且还可以实现良好的连接,如链接纸中给出的以下示例图所示:

测试输入图片:

测试输入图像

结果SUSAN:

结果苏珊

结果Canny:

结果坎尼

您可以清楚地看到SUSAN可以找到角落和路口,而不是Canny。


好的,您所指的主要是与实现相关的问题。我同意可能存在此类问题,但我认为还有许多其他边缘检测和其他算法。我正在寻找算法固有的更多理论限制或特征。
Dipan Mehta 2012年

我不同意阈值化(导致生成二进制图像),而参数是方法的一部分(如Canny的论文所述)。我不认为这是实施细节。
盖尔滕2012年

门限由每个边缘检测器完成,因此每个边缘检测器的输出都是二进制的。我会说一下调整参数和高斯平滑方面的困难,但与LoG类型的运算符不同,Canny实际上在存在噪声的情况下找到了最佳的平滑量。
Dipan Mehta 2012年

2
并不是每个边缘检测器都进行阈值处理(例如,我的答案中提到的是Sobel)。在许多情况下,这是常见且合乎逻辑的后续步骤,但不是每种边缘检测方法的基本步骤。
Geerten 2012年

6

还是在Canny最好的应用领域?

我可以想到一些:

  • 如果您需要闭合曲线,则可以确保更好的检测器(例如,拉普拉斯零交叉或分水岭分割)
  • 如果您要检测在某些区域对比度较低的同类物体,则使用全局信息的分割方法(例如分水岭分割)可以提供更好的结果

1

以我的经验,使用Canny边缘检测器进行边缘检测的过程会先平滑边缘,然后才能检测到边缘,并且滤波器的时间和长度必须完美匹配才能正确检测所有边缘。


1

我只想提及Canny检测器的一个局限性,那就是它的参数设置,这限制了它的应用。我认为参数设置不仅对于Canny检测器是一个问题,对于其他边缘检测方法也是一个问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.