【发布时间】:2012-01-06 12:55:25
【问题描述】:
我需要找到图像中的所有轮廓。我知道整个 findcontours () 和 drawContours () 的事情,但是它使用了我遇到问题的 Canny 边缘检测器。要使用查找轮廓,您需要使用精明的边缘检测或阈值图像。我无法对图像进行阈值处理,因为这会导致几个边缘变得模糊(边缘“合并”)。所以我决定使用 Canny Edge 检测。然而,当我使用它而不是获得完美的边缘时,我会得到各种带有间隙的线条。这使我无法获得良好的轮廓例如,我将获得 4 条由小间隙隔开的单独线条,而不是获得正方形的边缘,从而导致我获得 4 个轮廓而不是 1 个。我尝试了扩张、打开、关闭、高斯模糊以及基本上所有形态学运算符,但这些都不起作用。有些不合并行,而有些也将行与不相关的行合并。所以我想知道有没有人可以解决如何从 Canny Edge 检测中获取实际轮廓,或者如果没有,是否有人有任何替代方法可以从图像中获取所有轮廓?
【问题讨论】:
-
发布示例图像和代码将对此有所帮助...
-
这是一个非常典型的问题。使用 Canny 参数和形态的结构元素是解决此问题的常用方法。 :)
-
能否请您发表评论作为答案,以便我将其选为最佳答案?