function TT=iteration(imm)
%迭代法阈值计算
% im=imread('rice.tif');
count=imhist(imm);
zl=min(min(imm));
zk=max(max(imm));
zl=double(zl);
zk=double(zk);
T(1)=(zl+zk)/2;
% T(1)=128;
T(1)=round(T(1));
for k=1:6
n1=sum(count(1:T(k)));%第一类中象素总数
n2=sum(count(T(k)+1:256));%第二类中象素总数
sum1=0;sum2=0;
for i=1:T(k)
sum1=sum1+count(i)*i; %第一类灰度值总和
end
for i=T(k)+1:256
sum2=sum2+count(i)*i;%第二类灰度值总和
end
ua1=sum1/n1; %第一类的平均灰度值
ua2=sum2/n2; %第二类的平均灰度值
T(k+1)=(ua1+ua2)/2;
T(k+1)=round(T(k+1)); %四舍五入
if T(k+1)==T(k)
break;
end
end
if T(k+1)==T(k);
TT=T(k+1);
else
TT=0;
% disp('不是双峰图像');
end
% k=1;
% while k<=5
% n1=sum(count(1:T(k)));%第一类中象素总数
% n2=sum(count(T(k)+1:256));%第二类中象素总数
% sum1=0;sum2=0;
% for i=1:T(k)
% sum1=sum1+count(i)*i; %第一类灰度值总和
% end
% for i=T(k)+1:256
% sum2=sum2+count(i)*i;%第二类灰度值总和
% end
% ua1=sum1/n1; %第一类的平均灰度值
% ua2=sum2/n2; %第二类的平均灰度值
% T(k+1)=(ua1+ua2)/2;
% T(k+1)=round(T(k+1)); %四舍五入
% if T(k+1)==T(k)
% break;
% else
% k=k+1;
% end
% end
% if T(k+1)==T(k);
% TT=T(k+1);
% else
% TT=0;
% % disp('不是双峰图像');
% end