www.gusucode.com > 大津法图像分割matlab源码程序 > 大津法图像分割matlab源码程序/main.m

    其中x为图像的灰度矩阵



x=round(CIa)
[m,n]=size(x);
N=m*n;
num=zeros(1,256);
p=zeros(1,256);
for i=1:m
for j=1:n
num(x(i,j)+1)=num(x(i,j)+1)+1;
end
end
for i=0:255;
p(i+1)=num(i+1)/N;
end
totalmean=0;
for i=0:255;
totalmean=totalmean+i*p(i+1);
end
maxvar=0;
for k=0:255
kk=k+1;
zerosth=sum(p(1:kk));
firsth=0;
for h=0:k
firsth=firsth+h*p(h+1);
end
var=totalmean*zerosth-firsth;
var=var*var;
var=var/(zerosth*(1-zerosth)+0.01);
var=sqrt(var);
if(var>maxvar)
maxvar=var;
point=k;
end
end
threshold=point;
z=zeros(760,288)
for i=1:760
for j=1:288
if CIa(i,j)>=threshold
z(i,j)=1;
else
z(i,j)=0;
end
end
end
imshow(z)