3D相机坐标到世界坐标(改变基础?)

Goo*_*mps 7 geometry opencv linear-algebra computer-vision projective-geometry

假设我有一个对象相对于相机的坐标 X、Y、Z 和方向 Rx、Ry、Rz。另外,我还有这个相机在世界上的坐标U、V、W和方向Ru、Rv、Rw。

如何将对象的位置(位置和旋转)转换为其在世界中的位置?

对我来说,这听起来像是基础的改变,但我还没有找到明确的来源。

Cyr*_*ril 3

事实上你有两个基础:一个是相对于相机的,另一个是绝对的(世界)。因此,您基本上希望将相对数据转换为绝对数据。

地点

这是最简单的一个。您必须通过向量 t(U,V,W) 平移 (X,Y,Z) 位置。所以你所有的绝对位置都是 (Ax, Ay, Az) = (X,Y,Z)+t = (X+U,Y+V,Z+W)。

方向

这有点困难。您必须找到将相机从(我假设)(0,0,1)旋转到(Ru,Rv,Rw)的旋转矩阵。您应该查看基本旋转矩阵,以便分解从 (0,0,1) 到 (Ru,Rv,Rw) 的 2 次旋转(例如,一次根据 X 轴,一次根据 Z 轴)。我建议你在一张纸上画出绝对基和向量(Ru,Rv,Rw),这是获得正确结果的最简单方法。

所以你有 2 个基本旋转矩阵 r1 和 r2。得到的旋转矩阵 r = r1*r2 (或 r2*r1,这并不重要)。所以物体的绝对方向是 (ARx, ARy, ARz) = r*(Rx,Ry,Rz)。

希望这可以帮助 !