% Funkce pro optimalizace Nelder-Meadovým algoritmem s devíti náhodnými
function [vystup, kvalita]= opt_MATLAB3(obr1,obr2,okno)

fkrit = @(x,y) immse(x(okno(1):okno(2),okno(3):okno(4)),y(okno(1):okno(2),okno(3):okno(4)));

fobj=@(vystup1) fkrit(obr1,imrotate(imtranslate(obr2,[vystup1(1),vystup1(2)]),vystup1(3),'bilinear','crop'));

   % kostka pro prostorové rozložení náhodných odhadů
    cube=[1,1,-1;-1,1,-1;-1,-1,-1;1,-1,-1;1,-1,1;1,1,1;-1,1,1;-1,-1,1;0,0,0];
    kvalout=Inf;
    % z devíti náhodných odhadů vybere ten nejkvalitnější (Nelder-Mead funkce- fminserach)
    for i=1:9
        randvstup= 5*cube(i,:)+2*(rand(1,3)-.5);
        [vy,kv]=fminsearch(fobj,randvstup);
        if kv<kvalout
            kvalout=kv;
            vyout=vy;
        end
    end
    vystup=vyout;
    kvalita=kvalout;

    