function [F] = CorrectionStereo(a)

%Zakladni rovnice fotogrammetrie vcetne uvazovani imperfekci opticke
%soustavy, ktere jsou v tomto pripade znamy - funkce F viz Luhmann, Close
%Range Photogrammetry, str 205

%NACTENI ZNAMYCH PROMENNYCH

global ijk                                                                  %poradove cislo snimku - 1 nebo 2
global xCell                                                                %souradnice znacek ve snimcich nekorigovane
global yCell
global XCell                                                                %souradnice kal. znacek v prostoru
global YCell
global ZCell
global xcorCell                                                             %souradnice znacek ve snimcich korigovane
global ycorCell
global K1G                                                                  %nelinearni parametry kamery
global K2G
global K3G
global P1G
global P2G
global C1G
global C2G

K1 = K1G(ijk);
K2 = K2G(ijk);
K3 = K3G(ijk);
P1 = P1G(ijk);
P2 = P2G(ijk);
C1 = C1G(ijk);
C2 = C2G(ijk);

global DETG                                                                 %vyrovnavaci znamenko u matice rotace
DET = DETG(ijk);

x = xCell{ijk};
y = yCell{ijk};

xcor = xcorCell{ijk};
ycor = ycorCell{ijk};

X = XCell{ijk};
Y = YCell{ijk};
Z = ZCell{ijk};

%NEZNAME, OPTIMALIZOVANE, PARAMETRY

Vx = a(1);                                                                  %souradnice kamery v prostoru                                                                  
Vy = a(2);
Vz = a(3);
Omega = a(4);                                                               %uhly rotace s. s. kamery podel os x, y, z
Fi = a(5);
Kapa = a(6);
Px = a(7);                                                                  %stred snimku
Py = a(8);
Cxy = a(9);                                                                 %ohniskova vzdalenost

r11 = DET*(-cos(Fi).*cos(Kapa));                                            %vypocet clenu matice rotace
r12 = DET*(cos(Fi).*sin(Kapa));
r13 = DET*(-sin(Fi));
r21 = DET*(-cos(Omega).*sin(Kapa)-sin(Omega).*sin(Fi).*cos(Kapa));
r22 = DET*(-cos(Omega).*cos(Kapa)+sin(Omega).*sin(Fi).*sin(Kapa));    
r23 = DET*(sin(Omega).*cos(Fi));
r31 = DET*(-sin(Omega).*sin(Kapa)+cos(Omega).*sin(Fi).*cos(Kapa));
r32 = DET*(-sin(Omega).*cos(Kapa)-cos(Omega).*sin(Fi).*sin(Kapa));
r33 = DET*(-cos(Omega).*cos(Fi));

r = sqrt((xcor).^2+(ycor).^2);                                              %korigovana vzdalenost danych bodu od stredu snimku

kx = r11.*(X-Vx)+r21.*(Y-Vy)+r31.*(Z-Vz);                                   %vypocet parametru pro funkci F
ky = r12.*(X-Vx)+r22.*(Y-Vy)+r32.*(Z-Vz);    
N  = r13.*(X-Vx)+r23.*(Y-Vy)+r33.*(Z-Vz);    

F = [-x+Px-Cxy.*kx./N+xcor.*K1.*r.^2+xcor.*K2/10^6.*r.^4+xcor.*K3/10^12.*r.^6+P1.*(r.^2+2.*xcor.^2)+2.*P2.*xcor.*ycor+C1.*xcor+C2.*ycor;...
    -y+Py-Cxy.*ky./N+ycor.*K1.*r.^2+ycor.*K2/10^6.*r.^4+ycor.*K3/10^12.*r.^6+2.*P1.*xcor.*ycor+P2.*(r.^2+2.*ycor.^2)];
                                                                            %funkce F - zakladni rovnice fotogrammetrie, vse prevedeno na pravou stranu, obe slozky jsou simultanne minimalizovany
end

