0

我有一个小立方体,它的表面上有 n(你可以假设 n = 4)区分点。这些点被编号 (1-n) 并形成一个坐标空间,其中点 #1 是原点。

现在我使用跟踪相机来获取这些点的坐标,相对于相机的坐标空间。这意味着我现在有 n 个向量p_i从相机的原点指向立方体的表面。

有了这些信息,我正在尝试计算代表这两个坐标空间之间的变换的仿射变换矩阵(旋转+平移)。翻译部分相当简单,但我正在努力计算旋转矩阵。

OpenCV 中是否有任何内置功能可以帮助我解决这个问题?

4

3 回答 3

1

听起来cvGetPerspectiveTransform就是你要找的东西;cvFindHomograpy也可能有帮助。

于 2012-05-22T17:06:21.283 回答
1

solvePnP应该给你旋转矩阵和平移向量。尝试使用CV_EPNPor CV_ITERATIVE

编辑:或者您正在寻找RQ 分解

于 2012-05-22T17:21:14.470 回答
1

查看 OpenCV 的立体相机教程。OpenCV 使用平面棋盘进行所有计算,并将其 Z 维度设置为 0 以构建其 3D 点列表。您已经拥有 3D 点,因此请更改教程中的代码以反映您的 3D 点列表。然后您可以计算转换。

于 2012-05-23T21:38:49.333 回答