来自两个向量的3D变换矩阵

时间:2015-12-23 14:14:26

标签: python opencv math geometry

我在两个坐标系中有一对3D点,我需要找到坐标系之间的变换矩阵(旋转,缩放,平移)。

例如两点
p0 =(x0,y0,z0)
p1 =(x1,y1,z1)

对应于另一个坐标系中的点:
q0 =(x0',y0',z0')
q1 =(x1',y1',z1')

我需要找到转换M(R | T),使得
q0 = M * p0
q1 = M * p1

如果使用opencv或python有一种简单的方法,那就太棒了。

1 个答案:

答案 0 :(得分:2)

我们可以用这种方式解释你的问题。你想找到一个矩阵M,这样

    for matrix P = [p1 p2] and Q = [q1 q2], Q = MP. 

然后我们可以解决M:

    M = Q.dot(numpy.linalg.pinv(P))