有一些谷歌搜索结果和stackoverflow帖子似乎回答了这个问题,但简单事实是我无法理解它们。无论我读多少遍,我都无法理解四元数、欧拉角、罗德里格斯变换以及所有这些内容。
有人能向我解释就像我12岁一样,如何从OpenCV的solvePnP()方法返回的旋转和平移向量转换为可以插入3D图形应用程序的xyz位置和xyz旋转值吗?
这是为一个c ++增强现实应用程序。我已经完成了OpenCV部分的跟踪标记板和发送旋转和平移向量到图形程序,但我不知道如何使用这些信息来定位我的3D对象。
我真的想理解这背后的数学,并感激任何耐心解释这里的理论。但我也会接受一个指针,让我可以复制/粘贴代码并在另一天学习该理论。事实上,像这样看到具体的代码并向后工作来学习这样的东西,我好像学得更快。
编辑: 就像这个... 显然应该引导我走向正确的方向,但对于我所知道的所有东西而言,它可能是时间机器的计划。我想到我可能要求补习高中数学,但这不可能是第一次。
编辑: 这里有一个从solvePnP()返回的旋转向量和平移向量的示例... 转换为XML以进行传输到图形应用程序。请注意,我看到的每个问题都包含三行和一列。
有人能向我解释就像我12岁一样,如何从OpenCV的solvePnP()方法返回的旋转和平移向量转换为可以插入3D图形应用程序的xyz位置和xyz旋转值吗?
这是为一个c ++增强现实应用程序。我已经完成了OpenCV部分的跟踪标记板和发送旋转和平移向量到图形程序,但我不知道如何使用这些信息来定位我的3D对象。
我真的想理解这背后的数学,并感激任何耐心解释这里的理论。但我也会接受一个指针,让我可以复制/粘贴代码并在另一天学习该理论。事实上,像这样看到具体的代码并向后工作来学习这样的东西,我好像学得更快。
编辑: 就像这个... 显然应该引导我走向正确的方向,但对于我所知道的所有东西而言,它可能是时间机器的计划。我想到我可能要求补习高中数学,但这不可能是第一次。
编辑: 这里有一个从solvePnP()返回的旋转向量和平移向量的示例... 转换为XML以进行传输到图形应用程序。请注意,我看到的每个问题都包含三行和一列。
<Tvec type_id="opencv-matrix">
<rows>3</rows>
<cols>1</cols>
<dt>f</dt>
<data>
-2.50094433e+01 -6.59909010e+00 1.07882790e+02
</data>
</Tvec>
<Rvec type_id="opencv-matrix">
<rows>3</rows>
<cols>1</cols>
<dt>f</dt>
<data>
-1.92100227e+00 -2.11300254e-01 2.80715879e-02
</data>
</Rvec>