唐我编辑了我的问题。 我正在将Wxyz投影到图像(u,v)并得到一些错误的结果。我无法弄清楚错误在哪里。请帮助一些人弄明白。
假设:
Wxyzz = 386.06 197.02 -1821.8 1 407.32 -108 -1859.1 1 4.9764 290.92 -1531.2 1 103.39 -233.07 -1643.2 1 189.7 320.19 -1667.9 1 76.279 147.9 -1597.2 1 47.798 -319.51 -1605.8 1 164.74 -223.1 -1688.6 1 482.06 -251.66 -1921.2 1 226.42 -213.27 -1733.6 1
Wxyz=Wxyz' %';
%# intrinsic
fu = 2640; fv =2640; uo= 1514; vo = 994;
A= [ fu 0 uo 0
0 fv vo 0
0 0 1 0
0 0 0 1];
Exterior=[-6.6861,12.6118,-8.0660,[-0.4467,-0.3168,0.2380]*pi/180];%# deg 2 rad
%#data
X0=Exterior(1);
Y0=Exterior(2);
Z0=Exterior(3);
ax=Exterior(4);
by=Exterior(5);
cz=Exterior(6);
%#Rotation in X
Rx = [1 0 0
0 cos(ax) -sin(ax)
0 sin(ax) cos(ax)];
%#Rotation in Y
Ry = [cos(by) 0 sin(by)
0 1 0
-sin(by) 0 cos(by)];
%#Rotation in Z
Rz = [cos(cz) -sin(cz) 0
sin(cz) cos(cz) 0
0 0 1];
R=Rx*Ry*Rz;
T=[X0;Y0;Z0];
Extrinsic= R';
Extrinsic(:,4) = -(R')* (T);
Extrinsic(4,:) = [0 0 0 1]
PImage = A* Extrinsic* Wxyz;
%#Obtain the X's
PImage(1 ,:) = PImage(1 ,:) ./ PImage(3 ,:);
%#Obtain the Y's
PImage(2 ,:) = PImage(2 ,:) ./ PImage(3 ,:);
我正在
PImage = 955.93 707.43 -1814.4 1 939.75 1147.6 -1854.2 1 1506.3 490.36 -1521 1 1352.7 1370.2 -1637.6 1 1213.9 485.04 -1658.4 1 1389.7 749.08 -1588.5 1 1440.9 1521.6 -1600.6 1 1261.2 1344.2 -1683.2 1 857.22 1340 -1917.8 1 1173.9 1319.9 -1728.5 1
我应该得到(真正的2分)
img = 2072.8 706.69 2088.9 1146.9 1522.6 489.6 1676.1 1369.5 1814.9 484.3 1639.2 748.35 1587.9 1520.9 1767.6 1343.5 2171.4 1339.3 1854.9 1319.2
如果我使用 A = [ - fu 0 uo 0 0 fv vo 0 0 0 1 0 0 0 0 1]; 我得到了核心答案。 我无法弄清楚旋转或翻译的错误在哪里;为什么Pimage(:,1)与img(:,1)不相同。 任何帮助都将不胜感激。