分割level=graythresh(I);%调用系统函数计算阈值BW2=im2bw(I,level);%阈值分割figureimshow(BW2),title('调用库函数运行结果')level=round(level*255);disp('调用库函数求得的阈值:')disp(level)2.3全局阈值functionfun2(I)%阈值分割程序[widthheight]=size(I);;%获取图片宽高th=input('请输入阈值:');fori=1:widthforj=1:heightif(I(i,j)<th)%灰度小于阈值时则为黑色BW1(i,j)=0;else%灰度大于等于阈值时则为白色BW1(i,j)=1;endendendfigureimshow(BW1),title('全局阈值')2.4迭代法functionfun3(I)%迭代法求阈值J=double(I);T=(min(J(:))+max(J(:)))/2;%T的初始阈值done=false;%done的初始值为falsei=0;while~done%当done为false是则执行循环r1=find(J<=T);%找出不大于T的所有像素点索引值r2=find(J>T);%找出大于T的所有像素点索引值Tnew=(mean(J(r1))+mean(J(r2)))/2;%计算新的阈值done=abs(Tnew-T)<1;%判断|T2-T1|是否小于T0T=Tnew;i=i+1;endJ(r1)=0;%小于等于阈值的为黑J(r2)=1;%大于阈值的为白figureimshow(J),title('迭代法求阈值')functionyuantu(I)%显示原图figureimshow(I);title('原图')3结果与分析将程序文件名保存为main.m,以下为MATLAB主窗口运行的过程与结果图1命令窗口运行结果