gpt4 book ai didi

python - 如何删除小于给定半径的岛屿并指定岛屿之间的最小间隙

转载 作者:太空宇宙 更新时间:2023-11-03 14:36:08 24 4
gpt4 key购买 nike

我有一些数据,已在 Python 3.5 中分成多个类。生成的图像如下

原图

数据中有很多我想要删除的小岛。我圈出了其中的一些,以便在下面给出一个想法,但其实还有很多。

带有一些噪点的原始图像

我的想法是,我希望能够指定一个最小半径,低于该半径的噪声岛应被删除。

我使用 scikit-image 形态过滤器尝试了几种不同的方法。我尝试过组合灰度关闭和打开过滤器(如下图所示),并且我还尝试使用remove_small_objects过滤器并分别处理每对类并在最后将它们组合起来。他们确实致力于消除噪声岛(如下所示),但这会产生一个新问题。有些岛屿之间的边界很薄,我也不想要这样!

应用了灰度开口并圈出薄区域的图像

所以基本上,我想消除噪声岛,但每个岛之间也有最小的间隙。

任何帮助将不胜感激。

编辑:

对预期结果的一些说明:期望的结果是获得不存在小于特定半径的 Blob 的图像,并且填充或去除低于特定厚度的 Blob 之间的细边界。我正在寻找的模型如下所示:

期望的结果

最佳答案

膨胀和侵 eclipse (通过打开和关闭执行的过程)是过滤小噪声斑 block 的标准方法,但对于长而蛇形的区域,它们可能会导致您在创建薄区域和边界时遇到问题。您可以尝试根据显式连接组件大小进行过滤,而不是膨胀和腐 eclipse 。 Skimage 的函数 skimage.morphology.label 可以标记连接的组件,而 skimage.morphology.remove_small_objects 可以删除任何大小低于特定阈值的连接组件。

关于python - 如何删除小于给定半径的岛屿并指定岛屿之间的最小间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46944938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com