Canny Edge vs Thresholding用于Open CV中的轮廓估计

时间:2015-03-28 20:24:14

标签: opencv image-processing computer-vision contour canny-operator

我正在将Open CV用于涉及图像轮廓估计的图像处理应用程序。我想知道的是,对图像进行阈值处理(如他们如何完成here)或使用Canny Edge算法(here)是否会产生更好的结果。这是否涉及算法分析或我遗漏了什么?

1 个答案:

答案 0 :(得分:4)

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


如果你想从中获取一些东西,它们之间的区别在于阈值处理更多地用于对象提取,而边缘检测是处理管道中的预处理步骤,例如轮廓估计,对象检测和识别和特征分析。阈值处理是一种相当快速和肮脏的方式,可以查看某些事情是否正在发生,或者提取出“活跃”的东西,而边缘检测则更多地用于与计算机视觉相关的任务。


我没有解释Canny Edge Detection如何更好,我将向您推荐一些文献。


希望这有帮助!