从文档:
CC = bwconncomp(BW)返回BW中找到的连通分量CC.二进制图像BW可以具有任何尺寸.CC是一个有四个领域的结构......
CC中的最后一个字段PixelIdxList
是:
[a] 1-by-NumObjects单元阵列,其中单元阵列中的第k个元素是包含第k个对象中像素的线性索引的向量.
您可以通过查看单元格数组中相应条目的长度来查找每个标签的区域.就像是:
areas_in_pixels = cellfun(@length, CC.PixelIdxList);
Run Code Online (Sandbox Code Playgroud)
PixelIdxList是一个单元阵列,其每个成员包含该连接组件中存在的像素的线性索引.上面的代码行查找单元格数组中每个单元格的长度 - 即每个连接组件中的像素数.
我习惯于cellfun
保持代码简短有效.编写相同内容的另一种方式是:
areas_in_pixels = nan(1, length(CC.PixelIdxList);
for i = 1:length(CC.PixelIdxList)
areas_in_pixels(i) = length(CC.PixelIdxList{i});
end
Run Code Online (Sandbox Code Playgroud)
对于每个连接的组件,您可以通过访问areas_in_pixels中的元素来查找该组件的大小(以像素为单位):
areas_in_pixels(34) %# area of connected component number 34
Run Code Online (Sandbox Code Playgroud)