0

我有这个 BW 图像:

蒙版对象已连接

并使用函数 RegionProps,它显示一些对象是连接的:区域道具

所以我使用像 imerode 这样的形态学操作来分离对象以获得它们的质心:对象分离 质心

现在我将每个物体的所有质心都分开了,但是在侵蚀该区域时我丢失了很多信息,就像你在图 3 和图 1 中看到的那样。所以我在想是否有任何“扩张”图片 3 直到更接近图片 1,但没有再次连接对象。

4

2 回答 2

3

您可能想看看 bwmorph()。使用 'thicken', inf 名称-值对,它会加厚标签,直到它们重叠。这是一个很好的分割工具。我们可以使用它来为原始图像创建分割边界。

bw 是原始图像。标签是侵蚀标签的图像。

lines = bwmorph(labels, 'thicken', inf);

分割线的图像

 segmented_bw = bw & lines

在此处输入图像描述

您还可以跳过几个阶段并使用基于标记的分水岭获得类似的结果。甚至更好,因为形态跷跷板已经破坏了一些信息,如右下角分割不良的集群上所见。

于 2017-06-15T21:21:46.107 回答
1

您可以将掩码中的每个白色像素分配给最近的质心并使用生成的标签图:

[y x]= find(bw);  % get coordinates of mask pixels
D = pdist2([x(:), y(:)], [cx(:), cy(:)]);  % assuming cx, cy are centers' coordinates
[~, lb] = min(D, [], 2); % find index of closest center
lb_map = 0*bw;
lb_map(bw) = lb; % should give you the map.

有关pdist2更多信息,请参阅。

于 2017-06-14T12:42:48.487 回答