如何在图像中分离这两个边界?

时间:2019-05-12 08:31:30

标签: image-processing image-segmentation watershed

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

输入图片

我希望输出图像应如下所示:

2 个答案:

答案 0 :(得分:1)

如果我从算法中正确理解了您的需求,我建议您使用以下方法:

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

答案 1 :(得分:0)

我认为,不需要的物体之间的距离为最小距离d。

制作另一个位图。对于每个像素,取所有小于d / 2的像素。如果这些像素中的任何一个为白色,则将辅助位图中的相应像素也设为白色。否则使它变黑。传递完所有像素后,每个单独的对象在辅助位图中都会有一个连续的表示。因此,您可以使用Floodfill剪切所需的对象。