%KITLER2 Calculeaza pragul de binarizare prin metoda Kitler-Illingworth
%
% [T,VAL]=KITLER2(H)
% T este pragul de segmentare determinat astfel ca cele doua partitii sa
% aiba o divergenta orientata minima
% VAL este vectorul de valori ale functiei criteriu
% H este histograma [normalizata] a imaginii.
% Este posibil ca pragul cautat sa nu fie unic determinat, ci sa apartina
% unui interval (se inspecteaza toate maximele vectorului i)
%
% Creata de C. Vertan la 10.03.98
% Ultima modificare la   10.03.98

function [t,val]=kitler2(h)

i=0:255;
ii=i.*i;
hh=h.*i;
hhh=h.*ii;

H=cumsum(h);
HH=cumsum(hh);
HHH=cumsum(hhh);

sigma1=HHH./(H+eps)-(HH./(H+eps)).^2;
sigma2=(HHH(256)-HHH)./(1-H+eps)-((HH(256)-HH)./(1-H+eps)).^2;

val=H.*log(H+eps)+(1-H).*log(1-H+eps)-H.*log(sigma1+eps)-(1-H).*log(sigma2+eps);

[m,t]=max(val);