
正文
bwlabel函数c语言,bwlabel算法
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Matlab中关于函数bwlabel(I_bw,8)和函数bwboundaries(I_bw,'noholes')问题 高手进来帮忙看看吧 谢谢了
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?
你把你的图像传上来,我看看!
相关问答
Q1: 求问一下下面的代码什么意思[L,num]=bwlabel(f,4); for i=1:num; [r,c]=find(L==i);
通过4连通计算f得到L,然后再所得到的L中找到等于i的位置,r为横坐标,c为纵坐标
Q2: 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);
Q3: C++关于RELEASE版中同一个函数两次调用计算结果不同的问题?DEBUG版结果正常。
检查一下project setting 中c/c++中的设置,是否一样。特别是code generation 中的字节对齐方式
如果所有设置都一样,那么就只能自己调试一下,数据和执行流程
release版本也可以定义调试的






