2

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

4

1 回答 1

5

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


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


我不会解释 Canny 边缘检测如何更好,而是向您推荐一些文献。


希望这可以帮助!

于 2015-03-28T20:32:17.647 回答