www.pudn.com > calibr8.zip > iterateThem.m
function [T, R, fl, u0, v0, b1, b2, PC, errstat] = iterateThem()
%DEVELOPMENT PHASE
%
% [T, R, fl, u0, v0, b1, b2, errstat] = iterateThem()
%
% returns inital errors
global Gfl;
global Gu0;
global Gv0;
global Gb1;
global Gb2;
global GSp;
global Gno_views;
global GIpts;
global GHSp;
global GA;
disp( 'translation: x, y, z; rotation: alpha, beta, gamma' );
% minimize 4 unknowns
for i = 1:Gno_views
[Te, Re, err] = eval( ['getTR( GA{' num2str(i) '}, Gfl, Gu0, Gv0, Gb1, Gb2,GHSp{' num2str(i) '}(:,1:2) )'] );
eval( ['Te' num2str(i) ' = Te;'] );
eval( ['Re' num2str(i) ' = Re;'] );
eval( ['errs(' num2str(i+1) ',1) = err;'] );
end;
HSp{1} = GHSp{1};
HTe1 = eye(4);
HRe1 = eye(4);
HTe1(1:3,4) = Te1(:,3);
HRe1(1:3,1:3) = Re1;
for j = 2:Gno_views
eval( ['HTe' num2str(j) ' = eye(4);'] );
eval( ['HRe' num2str(j) ' = eye(4);'] );
eval( ['HTe' num2str(j) '(1:3,4) = Te' num2str(j) '(:,3);'] );
eval( ['HRe' num2str(j) '(1:3,1:3) = Re' num2str(j) ';'] );
eval( ['dKe' num2str(j) ' = inv( HTe1 ) * inv( HRe1 ) * HRe' num2str(j) ' * HTe' num2str(j) ';'] );
pom = eval( ['GHSp{' num2str(j) '}'] );
pom = hext(pom(:,1:3));
pom = pom';
eval( ['HSp{' num2str(j) '} = dKe' num2str(j) ' * pom;'] );
eval( ['pom = HSp{' num2str(j) '};'] );
pom = pom';
eval( ['HSp{' num2str(j) '} = hnorm( pom );'] );
end
PC = makePC( HSp, GIpts );
[AE, errstat] = estDLT( PC );
errs(1,1) = errstat(1,1);
[Te, Re, Ine, Lae] = decDLT( AE );
T = eye( 3 );
T(:,3) = Te';
R = Re;
u0 = Ine(1,1);
v0 = Ine(1,2);
b1 = Ine(1,3);
b2 = Ine(1,4);
fl = Ine(1,5);