【问题标题】:How to find contours in an image in OpenCV?如何在 OpenCV 中找到图像中的轮廓?
【发布时间】:2012-01-06 12:55:25
【问题描述】:

我需要找到图像中的所有轮廓。我知道整个 findcontours () 和 drawContours () 的事情,但是它使用了我遇到问题的 Canny 边缘检测器。要使用查找轮廓,您需要使用精明的边缘检测或阈值图像。我无法对图像进行阈值处理,因为这会导致几个边缘变得模糊(边缘“合并”)。所以我决定使用 Canny Edge 检测。然而,当我使用它而不是获得完美的边缘时,我会得到各种带有间隙的线条。这使我无法获得良好的轮廓例如,我将获得 4 条由小间隙隔开的单独线条,而不是获得正方形的边缘,从而导致我获得 4 个轮廓而不是 1 个。我尝试了扩张、打开、关闭、高斯模糊以及基本上所有形态学运算符,但这些都不起作用。有些不合并行,而有些也将行与不相关的行合并。所以我想知道有没有人可以解决如何从 Canny Edge 检测中获取实际轮廓,或者如果没有,是否有人有任何替代方法可以从图像中获取所有轮廓?

【问题讨论】:

  • 发布示例图像和代码将对此有所帮助...
  • 这是一个非常典型的问题。使用 Canny 参数和形态的结构元素是解决此问题的常用方法。 :)
  • 能否请您发表评论作为答案,以便我将其选为最佳答案?

标签: c++ image video opencv


【解决方案1】:

制作blob,然后轮廓随之而来。 :)

http://code.google.com/p/cvblob/

【讨论】:

    猜你喜欢
    • 2023-03-09
    • 2017-02-07
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    • 2011-06-13
    • 2019-02-12
    • 1970-01-01
    • 2020-06-08
    相关资源
    最近更新 更多