这个 工具箱我正在执行相机的校准。

但是,该工具箱输出会导致矩阵形式,并且是菜鸟,我真的不了解数学东西。

矩阵为以下形式。

alt text

其中r是旋转矩阵,t是翻译矢量。

这些是我从工具箱中获得的结果。它以像素输出值。

-0.980755   -0.136184  -0.139905  217.653207
0.148552    -0.055504  -0.987346  995.948880
0.126695    -0.989128  0.074666  371.963957
0.000000    0.000000  0.000000  1.000000

使用这些数据,我可以知道我的相机旋转了多少以及与校准对象的距离?

有帮助吗?

解决方案

距离部分很容易。来自原点的翻译由最右列中的前三个数字给出。这分别表示x,y和z方向的翻译。在您的示例中,相机的位置p =(pX, ,py, ,pz)=(217.653207,995.94880,371.963957)。您可以在摄像机的位置和校准对象的位置之间占据欧几里得的距离(CX, , Cy, , Cz)。那就是只有SQRT(P(PX-CX)2 +(py-Cy)2 +(pz-Cz)2 )

较困难的部分涉及矩阵的左上3x3元素捕获的旋转。不知道他们是如何到达的,您有些不幸。也就是说,转换回它并不容易 欧拉角, , 如果那是你想要的。但是,您可以将这些元素转换为 季节旋转 这将为您提供独特的单元向量和角度,以将相机旋转到该方向。提供了计算的细节 这里. 。一旦旋转循环,就可以轻松地将其应用于向量n =(0,0,1),UP =(0,1,0)和正确=(1,0,0)以获取正常(方向)相机指向),向上和右向量。右向量只有在您有兴趣从当前位置向左或向右驱动相机的情况下才有用。

其他提示

我猜该代码使用'标准'编队 - 然后,您将在 OPENCV库文档 或他们的书。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top