【问题标题】:how to separate these two boundary in this image? [closed]如何在这张图片中分离这两个边界? [关闭]
【发布时间】:2019-09-29 12:50:44
【问题描述】:

我使用分水岭算法对图像进行了分割。现在此图像包含许多对象。我想要一些选定的对象进行进一步分析。我的问题是如何删除此图像中不需要的对象。输入图像本身是嘈杂的。最好的方法是什么?

输入图像

我希望输出图像应该是这样的:

【问题讨论】:

  • 如何识别不需要的对象?您是否有每个不需要的对象的坐标,或者您根据某种标准决定它?
  • 不,我没有不需要的对象的坐标。我可以说不需要的对象与想要的对象组相距甚远。不需要的物体也应该在外围,并且可能有很大的面积/体积。

标签: image-processing image-segmentation watershed


【解决方案1】:

如果我正确地理解了您对算法的期望,我会建议这种方法:

做一个floodFill(填满所有的整体)。之后你有一些大的填充对象和一些小对象。根据这些对象的大小(可以使用连接组件或findcontour 算法计算)选择最大的,然后找到这个大对象的凸包。此过程为您提供了一个掩码,该掩码可以与您在此处显示的输入图像相乘(分水岭的输出)。结果将是您的最终图像(类似于您在此处显示的图像)。

【讨论】:

    【解决方案2】:

    我假设,不需要的对象被最小距离 d 分开。

    制作另一个位图。对于每个像素,取所有小于 d/2 的像素。如果这些像素中的任何一个为白色,则使辅助位图中的相应像素也为白色。否则让它变黑。通过所有像素后,每个单独的对象将在辅助位图中具有连续的表示。所以你可以使用floodfill来切割想要的对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-02
      • 2018-08-28
      • 2015-05-28
      • 1970-01-01
      • 2015-11-20
      相关资源
      最近更新 更多