代码之家  ›  专栏  ›  技术社区  ›  rohit-biswas

开放CV中轮廓估计的Canny边缘与阈值

  •  2
  • rohit-biswas  · 技术社区  · 10 年前

    我正在使用Open CV进行图像处理应用程序,该应用程序涉及图像中的轮廓估计。我想知道的是,是否对图像进行阈值处理(就像他们所做的那样 here )或使用Canny Edge算法( here )产生更好的结果。这涉及算法分析还是我遗漏了什么?

    1 回复  |  直到 10 年前
        1
  •  6
  •   rayryeng    10 年前

    显然是Canny边缘检测。它做了一系列的事情,以确保结果中只有强大的边缘。阈值处理只需要查看强度,并查看每个值是否更小或更大,然后分别获得“边缘”点。 然而 根据场景的复杂性,阈值和边缘检测将产生相同的结果。例如,如果您有一个干净的图像,其中包含多个清晰的对象,这些对象在前景和背景之间具有明显的强度差异,那么边缘检测或阈值处理都会起作用。如果您有一个更复杂的图像,其中不同区域的对比度不同,或者如果您有多个具有不同强度的对象,那么阈值设置不会给您带来好的结果,因为您将不可避免地包含在不属于任何适当对象的像素中。这就是为什么边缘检测更好,因为它是一个 地方的 运算符,阈值为 全球的 阈值应用一个设置原则 每一个像素 在图像中。边缘检测将图像分解为补丁,并确定每个补丁中是否发生了什么。


    如果你想从中得到一些东西,两者之间的区别在于阈值更多地用于对象提取,而边缘检测是处理管道中的一个预处理步骤,例如轮廓估计、对象检测和识别以及特征分析。阈值是一种非常快速和肮脏的方法,可以查看是否发生了什么,或者提取出“活动”的东西,而边缘检测更多地用于计算机视觉相关任务。


    我不想解释Canny边缘检测是如何更好的,我想让你参考一些文献。


    希望这有帮助!