您可能希望使用bwlabel
which 隔离二进制矩阵中的连接组件(1 的集群)。
A = [0 1 0 1
1 1 0 0
0 0 0 0
1 1 1 1 ];
[L,n] = bwlabel(A,8) % # for a 8-pixel stencil
% # (i.e. hor/vert/diag first neighbors)
或者
[L,n] = bwlabel(A,4) % # for 4-pixel stencil
% # (just horizontal & vertical neighbors)
L = 0 1 0 3
1 1 0 0
0 0 0 0
2 2 2 2
这样做,您将获得一个L
标记不同n
连接组件的矩阵。
然后你可能想提取一些统计数据;例如,您可能想要对集群的大小进行直方图。
cluster_size = hist(L(:),0:n);
cluster_size = cluster_size(2:end); % # histogram of component vs. size
% # (without zeros)
hist(cluster_size) % # histogram of sizes
它告诉你你有一个包含 1 个元素的集群,一个包含 3 个元素的集群和一个包含四个元素的集群。
最后,如果您正在寻找集群的平均大小,您可以这样做
mean(cluster_size)
2.6667