【问题标题】:Find shapes on white background. Thinning the lines在白色背景上查找形状。细化线条
【发布时间】:2017-02-06 05:05:33
【问题描述】:

我有以下图片作为测试图片:

我试图找到图像(和其他图像)上的形状。我现在的方法如下:

  1. 具有 3x3 内核的高斯模糊
  2. Canny 边缘检测使用 列表(获取所有形状)
  3. MorphOp 的形态学。关闭以关闭 边缘
  4. FindContours 查找轮廓
  5. 每个轮廓的迭代:
    1. 查找 ApproxPolyDP
    2. 找到 ConvexHull
    3. 丢弃如果 船体尺寸 50000,或弧长 大约
    4. 绘制凸包

此方法生成以下图像,其中绘制了凸包:

这几乎是完美的,但请注意,这些线条被视为事件->供应商和事件->文档的轮廓)。查看边缘信息时,很明显为什么会这样:

线条被检测为轮廓。我如何准备/找到形状以便检测不到线条?我虽然有一些细化算法,但由于我也在处理现实生活中的图像,所以很难找到一个有效的阈值。这是一个现实生活图像的示例,其中很难进行细化,因为细化通常要求图像在黑白中是单色的。

你会怎么做?有什么方法可以确定轮廓/凸包是线、矩形还是类似的东西?

【问题讨论】:

    标签: opencv emgucv opencv-contour canny-operator adaptive-threshold


    【解决方案1】:

    我最终混合使用了重叠测试和凸面扫描。凸度扫描凸包和实际轮廓之间的误差。如果此误差超过一定量,则忽略船体。如果两个凸包的重叠,重叠只是使用按位和去技术。如果它们重叠超过 95%,则忽略其中之一。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多