作业帮 > 综合 > 作业

Matlab中关于函数bwlabel(I_bw,8)和函数bwboundaries(I_bw,'noholes')问题

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/18 05:08:36
Matlab中关于函数bwlabel(I_bw,8)和函数bwboundaries(I_bw,'noholes')问题
我用[L,num] = bwlabel(I_bw,8);函数求出连通区域num数 又用 B = bwboundaries(I_bw,'noholes')函数提取了连通区域的边界,可num数不等于size(B)的大小 num数为169,size(B)为135 请问 这是为什么 怎么解决
那B中存放的应该是每一个连通区域的边界值?size(B)之后求出的是1区域+2区域边界的长度对么?我不太明白 ,
BW =
1 1 1 0 0 0 0 0
1 1 1 0 1 1 0 0
1 1 1 0 1 1 0 0
1 1 1 0 0 0 1 0
1 1 1 0 0 0 1 0
1 1 1 0 0 0 1 0
1 1 1 0 0 1 1 0
1 1 1 0 0 0 0 0
>> [L,num] = bwlabel(BW,8)
L =
1 1 1 0 0 0 0 0
1 1 1 0 2 2 0 0
1 1 1 0 2 2 0 0
1 1 1 0 0 0 2 0
1 1 1 0 0 0 2 0
1 1 1 0 0 0 2 0
1 1 1 0 0 2 2 0
1 1 1 0 0 0 0 0%%%对连通区域进行标记
num =
2 %%连通区域数目
>> B = bwboundaries(BW,'noholes')
B =
[19x2 double]
[14x2 double]%%%%B返回的是连通区域中边界的像素数,你的size(B),怎么会是135?
你把你的图像传上来,我看看!