如果我的投影有2D点,我怎样才能找到我的3D模型的三维仿射变换?

时间:2015-11-17 20:43:30

标签: opencv 3d affinetransform coordinate-transformation homography

我有我的模型的3D点。我有2D点 - 我的模型的这些3D点在平面上的投影。我想找到3D模型的三维仿射变换(平移,旋转和缩放),这样3D模型的投影就能让我在平面上得到与我相同的2D点。

如果我的3D投影有2D点,我怎样才能找到3D模型的三维仿射变换?

1 个答案:

答案 0 :(得分:1)

只需找到投影矩阵的零空间,例如在matlab中,您可以使用u = null(P)(或numpy中的Python (NumPy, SciPy), finding the null space of a matrix)。这将是单个向量,因为P从3D空间向下投影一维。

满足P * A = P的仿射变换(其中P是投影,A是仿射变换)将是A =([uu ... u] + I),其中您从零空间矢量形成矩阵你要匹配A的维度(可能4x4包括翻译)。