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

信息处理 图像处理 边缘检测
2022-01-13 01:01:08

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

然而,作为一个简单的好奇心,Canny 的边缘检测器是否有一个值得关注的领域?或者有没有 Canny 不是最好的应用领域?

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

另外,我真的不关注具体的实施问题。我正在寻找算法中固有的更多理论限制或特征。

4个回答

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

  • 结果是二进制的。您有时需要测量边缘有资格作为边缘的“多少”(例如,来自 Sobel 幅度边缘检测器的强度图像)
  • 参数的数量导致无限调整以获得更好结果。
  • 您仍然需要连接生成的边缘以提取对人眼+大脑来说似乎如此明显的完整边缘。
  • 同样由于高斯平滑:边缘的位置可能会关闭,具体取决于高斯核的大小。

  • 该方法在拐角和连接处存在问题:

    • 高斯平滑使它们变得模糊,使它们更难检测(边缘本身也是如此)
    • 角落像素在错误的方向上寻找它们的邻居,留下开放的边缘,并缺少连接

最后一个问题由SUSAN 方法解决,它更好地连接边缘并产生良好的连接,如链接论文中给出的这些示例图所示:

测试输入图像:

测试输入图像

结果苏珊:

结果 苏珊

结果精明:

结果精明

您可以清楚地看到 SUSAN 找到了拐角和交叉点,而不是 Canny。

或者有没有 Canny 不是最好的应用领域?

我能想到几个:

  • 如果您需要闭合曲线,可以保证这些的检测器可能会更好(例如拉普拉斯或分水岭分割的零交叉)
  • 如果您尝试检测在某些区域具有低对比度的同质对象,则使用全局信息的分割方法(如分水岭分割)可以提供更好的结果

根据我的经验,使用精明边缘检测器进行边缘检测的过程在能够检测到边缘之前会先平滑边缘,并且滤波器的时间和长度必须完美匹配才能检测到所有边缘而不会出现错误。

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