提问人:justik 提问时间:11/17/2023 最后编辑:justik 更新时间:11/17/2023 访问量:30
Matlab:连接组件分析
Matlab: connected components analysis
问:
从以下二进制栅格:
R = [0 1 0 0 0 0 1 1;
0 1 1 0 0 1 1 0;
0 1 0 0 0 0 1 0;
0 0 0 1 1 0 0 0;
1 0 1 0 0 0 1 1];
我想删除所有像素小于 3 的 4 个连接组件。
首先,评估连接组件的数量:
CC = bwconncomp(R,4);
L = labelmatrix(CC);
IC = CC.PixelIdxList;
np = cellfun(@numel, IC);
随后,找到小于 3 个像素的 4 个连接组件:
idxs = find(np < 3)
但是,从输入栅格 R 中移除连接分量的最终尝试不成功:
R(IC{idxs}) = 0; %Result: 4-D double
输出栅格将转换为“4D”矩阵。这可能是由于单元格的输出单元格工作不正确造成的,但我不确定......
感谢您的帮助。
答: 暂无答案
评论
idxs
IC{idxs}
R
idxs
PixelIdxList
idx = cat(1,IC{idxs}); R(idx) = 0;
cat(1,...)
cat(2,...)