我有我的模型的3D点。我有2D点 - 我的模型的这些3D点在平面上的投影。我想找到3D模型的三维仿射变换(平移,旋转和缩放),这样3D模型的投影就能让我在平面上得到与我相同的2D点。
如果我的3D投影有2D点,我怎样才能找到3D模型的三维仿射变换?
答案 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包括翻译)。