1 | %'pxcm_tsai': find differentials of the Tsai calibration
|
---|
2 | %
|
---|
3 | function [A11,A12,A13,A21,A22,A23]=pxcm_tsai(a,var_phys)
|
---|
4 | a_read=a;
|
---|
5 |
|
---|
6 | R=(a.R)';
|
---|
7 |
|
---|
8 | x=var_phys(:,1);
|
---|
9 | y=var_phys(:,2);
|
---|
10 |
|
---|
11 | if isfield(a,'PlanePos')
|
---|
12 | prompt={'Plane 1 Index','Plane 2 Index'};
|
---|
13 | Rep=inputdlg(prompt,'Target displacement test');
|
---|
14 | Z1=str2double(Rep(1));
|
---|
15 | Z2=str2double(Rep(2));
|
---|
16 | z=(a.PlanePos(Z2,3)+a.PlanePos(Z1,3))/2
|
---|
17 | else
|
---|
18 | z=0;
|
---|
19 | end
|
---|
20 |
|
---|
21 | %transform coeff for differentiels
|
---|
22 | a.C11=R(1)*R(8)-R(2)*R(7);
|
---|
23 | a.C12=R(2)*R(7)-R(1)*R(8);
|
---|
24 | a.C21=R(4)*R(8)-R(5)*R(7);
|
---|
25 | a.C22=R(5)*R(7)-R(4)*R(8);
|
---|
26 | a.C1x=R(3)*R(7)-R(9)*R(1);
|
---|
27 | a.C1y=R(3)*R(8)-R(9)*R(2);
|
---|
28 | a.C2x=R(6)*R(7)-R(9)*R(4);
|
---|
29 | a.C2y=R(6)*R(8)-R(9)*R(5);
|
---|
30 |
|
---|
31 |
|
---|
32 | %dependence in x,y
|
---|
33 | denom=(R(7)*x+R(8)*y+R(9)*z+a.Tz).*(R(7)*x+R(8)*y+R(9)*z+a.Tz);
|
---|
34 | A11=(a.f*a.sx*(a.C11*y-a.C1x*z+R(1)*a.Tz-R(7)*a.Tx)./denom)/a.dpx;
|
---|
35 | A12=(a.f*a.sx*(a.C12*x-a.C1y*z+R(2)*a.Tz-R(8)*a.Tx)./denom)/a.dpx;
|
---|
36 | A21=(a.f*a.sx*(a.C21*y-a.C2x*z+R(4)*a.Tz-R(7)*a.Ty)./denom)/a.dpy;
|
---|
37 | A22=(a.f*(a.C22*x-a.C2y*z+R(5)*a.Tz-R(8)*a.Ty)./denom)/a.dpy;
|
---|
38 | A13=(a.f*(a.C1x*x+a.C1y*y+R(3)*a.Tz-R(9)*a.Tx)./denom)/a.dpx;
|
---|
39 | A23=(a.f*(a.C2x*x+a.C2y*y+R(6)*a.Tz-R(9)*a.Ty)./denom)/a.dpy;
|
---|
40 |
|
---|
41 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
---|
42 | %Old Version for z=0
|
---|
43 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
---|
44 | % %'camera' coordinates
|
---|
45 | % xc=R(1)*x+R(2)*y+a.Tx;
|
---|
46 | % yc=R(4)*x+R(5)*y+a.Ty;
|
---|
47 | % zc=R(7)*x+R(8)*y+a.Tz;
|
---|
48 | % %undistorted image coordinates
|
---|
49 | % Xu=a.f*xc./zc;
|
---|
50 | % Yu=a.f*yc./zc;
|
---|
51 | % %distorted image coordinates
|
---|
52 | % distortion=(a.kappa1)*(Xu.*Xu+Yu.*Yu)+1; %!! intégrer derivation kappa
|
---|
53 | % % distortion=1;
|
---|
54 | % Xd=Xu./distortion;
|
---|
55 | % Yd=Yu./distortion;
|
---|
56 | % %pixel coordinates
|
---|
57 | % X=Xd*a.sx/a.dpx+a.Cx;
|
---|
58 | % Y=Yd/a.dpy+a.Cy;
|
---|
59 | %
|
---|
60 | % %transform coeff for differentiels
|
---|
61 | % a.C11=R(1)*R(8)-R(2)*R(7);
|
---|
62 | % a.C12=R(2)*R(7)-R(1)*R(8);
|
---|
63 | % a.C21=R(4)*R(8)-R(5)*R(7);
|
---|
64 | % a.C22=R(5)*R(7)-R(4)*R(8);
|
---|
65 | % a.C1x=R(3)*R(7)-R(9)*R(1);
|
---|
66 | % a.C1y=R(3)*R(8)-R(9)*R(2);
|
---|
67 | % a.C2x=R(6)*R(7)-R(9)*R(4);
|
---|
68 | % a.C2y=R(6)*R(8)-R(9)*R(5);
|
---|
69 | %
|
---|
70 | %
|
---|
71 | % %dependence in x,y
|
---|
72 | % denom=(R(7)*x+R(8)*y+a.Tz).*(R(7)*x+R(8)*y+a.Tz);
|
---|
73 | % A11=(a.f*a.sx*(a.C11*y+R(1)*a.Tz-R(7)*a.Tx)./denom)/a.dpx;
|
---|
74 | % A12=(a.f*a.sx*(a.C12*x+R(2)*a.Tz-R(8)*a.Tx)./denom)/a.dpx;
|
---|
75 | % A21=(a.f*a.sx*(a.C21*y+R(4)*a.Tz-R(7)*a.Ty)./denom)/a.dpy;
|
---|
76 | % A22=(a.f*(a.C22*x+R(5)*a.Tz-R(8)*a.Ty)./denom)/a.dpy;
|
---|
77 | % A13=(a.f*(a.C1x*x+a.C1y*y+R(3)*a.Tz-R(9)*a.Tx)./denom)/a.dpx;
|
---|
78 | % A23=(a.f*(a.C2x*x+a.C2y*y+R(6)*a.Tz-R(9)*a.Ty)./denom)/a.dpy;
|
---|
79 | %
|
---|