1、clear alla=imread(moon.tif);figure,imshow(a)count=imhist(a);m,n=size(a);N=m*n;L=256;count=count/N;%每一个像素的分布概率countfor i=1:Lif count(i)=0st=i-1;break;endendstfor i=L:-1:1if count(i)=0nd=i-1;break;endendndf=count(st+1:nd+1); %f 是每个灰度出现的概率size(f)E=;for Th=st:nd-1 %设定初始分割阈值为 Thav1=0;av2=0;Pth=sum(count(
2、1:Th+1);%第一类的平均相对熵为for i=0:Thav1=av1-count(i+1)/Pth*log(count(i+1)/Pth+0.00001);end%第二类的平均相对熵为for i=Th+1:L-1av2=av2-count(i+1)/(1-Pth)*log(count(i+1)/(1-Pth)+0.00001);endE(Th-st+1)=av1+av2;endposition=find(E=(max(E);th=st+position-1for i=1:mfor j=1:nif a(i,j)tha(i,j)=255;elsea(i,j)=0;endendend figure,imshow(a);