你好!我同学写的可以供你参考。他没上传到网上,有具体的Matlab实现代码。稍加修改就能使用。祝您成功
1全局阈值分割代码
clc
clear
close
[filename, pathname]:… uigetfile
str=[pathnamc filename]; I=imread(str);
[a,b,c]=size ⑴; if(c==3)
I=rgb2gray(I);
ii=255;
end
figure ⑴
imshow(I);title
tic
DI=doublc(I); zd=doublc(max(max(I))); zx=double(min(min(I))); T=double((zd+zx))/2; count=double(0); while 1
count=count+l;
S0=0.0; n0=0.0; Sl=0.0;nl=0-0; for i=l:a for j=l:b
if doublc(I(i j))>=T S1 =S 1 +double(I(i j)); nl=nl + l;
else
S0=S0+double(I(ij));
nO=nO+l;
end
end
end
TO=SO/nO;
Tl=Sl/nl;
ifabs(T-((T0+Tl)/2))<0.1
break;
else
T=(T0+Tl)/2;
end
end
Il=im2bw(IJ/255);
tl=toc
figure(2)
imshow(ll);titlc
tic
I2=im2bw(I,graythresh(I));
t2=toc
figure(3)
imshow(12);titlc
2局部阈值分割代码