|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
小妹做课设,做图象的分割最佳阈值算法的程序,如下;
I=imread(...);
I=mat2gray(I);
I=double(uint8(I.*255));
t=0;
ii=mean2(I);
ii=double(uint8(ii));
hmax=double(max(max(I)));
x=ii;
for i=ii:1:hmax
II1=double(I>i);
II2=double(I<=i);
if(sum(sum(II1))==0)
a=i;
else
a=sum(sum(double(I).*II1))/sum(sum(II1));
end;
if(sum(sum(II2))==0)
b=i;
else
b=sum(sum(double(I).*II2))/sum(sum(II2));
end;
a=abs(a-i);
b=abs(b-i);
t1=min(a,b);
if(t1>t)
t=t1;
x=i;
end;
end;
I1=I>x;
finger;
imshow(i);
finger;
imshow(i1);
敲完程序后总提示:A must be double,
我知道是I=mat2gray(I);这行出了错误,
求助各位大哥帮忙解决。
|
|