所以我在 Matlab 中有一个二进制矩阵。 它基本上是一个被中性背景(值为 0)包围的 Blob (值为 1 的像素)。
我想弄清楚这个 blob 是否是简单连接的。 下图是一个简单的示例。
如何实现这一目标? 值得注意的是,我知道像素化图像中的每条路径都可以通过从 4 个相邻元素(上、下、左、右)或 8 个相邻元素等中进行选择来创建 - 在这种情况下这并不重要。
请您参考如下方法:
代码
%// Assuming bw1 is the input binary matrix
[L,num] = bwlabel( ~bw1 );
counts = sum(bsxfun(@eq,L(:),1:num));
[~,ind] = max(counts);
bw2 = ~(L==ind);
%// Output decision
[L,num] = bwlabel( bw1 );
if ~nnz(bw1~=bw2) && num==1
disp('Yes it is a simply connected blob.')
else
disp('Nope, not a simply connected blob.')
end