《matlab实现最大熵法图像分割程序源代码》由会员分享,可在线阅读,更多相关《matlab实现最大熵法图像分割程序源代码(2页珍藏版)》请在金锄头文库上搜索。
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:L if count(i)=0 st=i-1; break; endendstfor i=L:-1:1 if count(i)=0 nd=i-1; break; endendndf=count(st+1:nd+1); %f是每个灰度出现的概率size(f)E=;for Th=st:nd-1 %设定初始分割阈
2、值为Thav1=0;av2=0;Pth=sum(count(1:Th+1);%第一类的平均相对熵为for i=0:Th av1=av1-count(i+1)/Pth*log(count(i+1)/Pth+0.00001);end%第二类的平均相对熵为for i=Th+1:L-1 av2=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-1 for i=1:m for j=1:n if a(i,j)th a(i,j)=255; else a(i,j)=0; end endend figure,imshow(a); /