bwlabel函数c语言,bwlabel算法

Matlab中关于函数bwlabel(I_bw,8)和函数bwboundaries(I_bw,'noholes')问题 高手进来帮忙看看吧 谢谢了

BW =

创新互联公司是一家专注于网站设计、成都网站建设与策划设计,顺城网站建设哪家好?创新互联公司做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:顺城等地区。顺城做网站价格咨询:028-86922220

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?

你把你的图像传上来,我看看!

求问一下下面的代码什么意思[L,num]=bwlabel(f,4); for i=1:num; [r,c]=find(L==i);

通过4连通计算f得到L,然后再所得到的L中找到等于i的位置,r为横坐标,c为纵坐标

matlab问题,我应该如何用bwlabel函数让图像中只剩最大的连通区域?

L=bwlabel(BW,4(或者8))

返回大小和输入矩阵BW相同的矩阵L

背景部分数值为0

其他连通部分根据不同的分块,给标记为1 ,2 ,3 ,...n

如果你知道你要的分块的标记数是x, 那么a=(L==x)就是你需要的部分为1,其他为0的逻辑矩阵

如果你想找最大的

那么

[L,num]=bwlabel(BW,4(或8));

x=zeros(1,num);

for ii=1:num

x(ii)=sum(sum(L==ii));

end

[m,ind]=max(x);

out=(L==ind);

C++关于RELEASE版中同一个函数两次调用计算结果不同的问题?DEBUG版结果正常。

检查一下project setting 中c/c++中的设置,是否一样。特别是code generation 中的字节对齐方式

如果所有设置都一样,那么就只能自己调试一下,数据和执行流程

release版本也可以定义调试的


当前标题:bwlabel函数c语言,bwlabel算法
地址分享:http://scyanting.com/article/hshhee.html