侵蚀而不会失去地区

时间:2017-05-04 17:40:37

标签: python image-processing image-segmentation

我有一个包含细胞的图像。我无法提供它,但它类似于此处用作示例的图像:http://blogs.mathworks.com/steve/2006/06/02/cell-segmentation/但没有特征核。

我已经做了一些处理,现在留下了非常好的分段,但是有些单元格彼此接近,我需要拆分它们。它们中的大多数由或多或少重叠的椭圆组成。

我确信,几次简单侵蚀的迭代几乎会分裂所有这些区域。但是其他一些细胞非常小,它们会在其他细胞分裂之前消失。因此,我需要一种侵蚀图像的算法,允许区域分割,但不删除区域的最后一个像素。

我想用分水岭分割细胞。

我想我可以通过搜索中心区域然后跟踪我不会丢失任何类似的东西来实现这一点,但是即使在我的脑海中,实现看起来也很混乱我觉得必须有一个更简单的方法。所以我的问题基本上是,这是什么名称,所以我可以google一个实现?或者,如果没有现成的解决方案,那么在没有几十次迭代和循环等的情况下实现这一点的优雅方式是什么。

(语言是python)

1 个答案:

答案 0 :(得分:1)

这是一个经典问题,如果单元格之间的重叠太重要,假设40%或更多,那么就没有一个好的解决方案。

但是,如果重叠不重要,可以采用以下解决方案:

  • 你从你拥有的细分开始,我们称之为S
  • 您计算最终侵蚀的UE(S)。它会给你每个细胞的中心。它会给你the red points on this image之类的东西。在这张图片中,他们使用了距离图,最终被侵蚀会更加稳定。如果每个小区仍有许多红点,那么UE(S)的扩张将解决您的问题,如this example
  • 您可以反转Inv(S)或计算voronoi图Voi(S),以便在背景中显示标记。
  • 在S的渐变图像上分水岭,使用UE(S)作为内部标记(完美,因为您有一个逐个单元)和Inv(S)或Voi(S)作为背景/外部标记。

您将获得类似this example的内容。