function alpha = getalpha(images,F,b,sigma,Pk)
% Odhad koeficientu alpha. 
% 
% Vstupni parametry:
%   images ... H x W x M pole s M obrazky
%   F      ... H x w pole s odhadnutym obrazkem tvare
%   b      ... 1 x 1 odhad barvy pozadi 
%   sigma  ... 1 x 1 sigma
%   Pk     ... Wimg-w+1 x 1 vektor, pravdepodobnost Pk
%
% Vystup:
%   alpha  ... Wimg-w+1 x M pole s koeficienty alpha
%
% Prevzato z reseni cv12.m od Rusz, Horniak, 2007/12/17

Wimg  = size(images,2); % sirka vstupnich obrazku
m     = size(images,3); % pocet obrazku
w     = size(F,2);      % sirka tvare
K     = Wimg-w+1;       % pocet posunuti (moznych umisteni tvare)

% alokace poli (pro urychleni)
alpha = zeros(Wimg-w+1,size(images,3)); %
pozadi= zeros(size(images,1),size(images,2));

% pro pocet obrazku m
for i = 1:m
    % pro aktualni posunuti
    for k = 1:K
        umisteni = [k:(k - 1 + w)]; 
        pozadi(:,:) = b; % pozadi
        pozadi(:,umisteni) = F;  % tvar
        expPXk(i,k)=(sum(sum((-1*((images(:,:,i) - pozadi)).^2)./(2*sigma^2))));
        % odectu vygenerovane pozadi od obrazku a sumu, abych dostal
        % exponent, tj. predpocitam si exponenty jednotlivych gaussianu
    end
end

% pro pocet obrazku m
for i = 1:m
    % pro aktualni posunuti
    for k = 1:K        
        alpha(k,i)=( Pk(:)'/Pk(k) * exp( expPXk(i,:)' - expPXk(i,k) ))^(-1); % upraveny vzorec pres exponenty
    end
end
