求助matlab中的一个小程序总是运行不出来~希望高手指点一二。

是关图像处理二值化的程序老是提示dividedbyzero,程序如下:f=imread('hm.bmp');subplot(1,2,1)imshow(f);title('... 是关图像处理二值化的程序 老是提示 divided by zero,程序如下:
f=imread('hm.bmp');
subplot(1,2,1)
imshow(f);
title('原始图像');
f=double(f);
T=(min(f(:))+max(f(:))+max(f(:)))/2;
done=false;
i=0
while ~done
r1=find(f<=T);
r2=find(f>T);
Tnew=(mean(f(r1))+mean(f(r2)))/2
done=abs(Tnew-T)<1
T=Tnew;
i=i+1;
end
f(r1)=0;
f(r2)=1;
subplot(1,2,2)
imshow(f);
title('迭代阈值二值化图像');
展开
 我来答
hr0917
2009-05-01 · TA获得超过856个赞
知道小有建树答主
回答量:415
采纳率:0%
帮助的人:149万
展开全部
r2=find(f>T); 这句有问题,因为根据你的程序,min(f)=0时,T有可能等于max(f),这时r2的结果是个空数据,所以才会出错。
不懂你的算法,检查一下T=(min(f(:))+max(f(:))+max(f(:)))/2; 是不是有问题。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式