一段matlab语句求教

我要做的是去掉小面积的部分 下面 if area(L(k,j))<50的出错 应该是变量问题,我是matlab小白求改正
[L,num]=bwlabel(bw,8); %区域标记,
STATS=regionprops(L, 'all');
[m,n]=size(L)
for i=1:num
area(i)=STATS(i).Area; %计算各区域的面积。
end
for k=1:m
for j=1:n
if area(L(k,j))<50
L(k,j)=0;
end
end
end

[L,num]=bwlabel(bw,8); %区域标记,
STATS=regionprops(L, 'all');
[m,n]=size(L);
bw2=bw;
for i=1:num
if(STATS(i).Area<50); %计算各区域的面积。
bw2(L==i)=0;
end
end

bw2最后是bw中删去面积比50小的区域剩下的二值图像
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-19
L是个m*n矩阵
L(k,j)是一个元素的值
你这里L(k,j)作为area向量下标时能够保证不越界吗?追问

越界是不会的 他的问题在area(0)

还有 Attempted to access area(0); index must be a positive integer or logical.
还有就是这个index的格式怎么变zhengxing

追答

如果是因为下标类型的问题的话,强制类型转换用 int32(L(k,j))

第2个回答  2014-10-19
能把错误信息贴出来吗
相似回答