我有一组在投影空间里的三维点,我想将它们转换为度量制的三维空间,这样我就可以用米来测量距离。
为了达到这个目的,我需要一个三维到三维的单应性矩阵,它是一个具有15个自由度的4x4矩阵(所以我需要5个三维点来获得15个方程)。
我有一组这样的5个投影空间中的三维点和它们对应的5个度量空间中对齐的三维点(我期望5个投影点被转换到度量空间中)。
我无法估计出这个单应性矩阵。起初,我尝试了:
为了达到这个目的,我需要一个三维到三维的单应性矩阵,它是一个具有15个自由度的4x4矩阵(所以我需要5个三维点来获得15个方程)。
我有一组这样的5个投影空间中的三维点和它们对应的5个度量空间中对齐的三维点(我期望5个投影点被转换到度量空间中)。
我无法估计出这个单应性矩阵。起初,我尝试了:
A=np.vstack([p1101.T, p1111.T, p0101.T, p0001.T, p0011.T])
b=np.array([[1,1,0,1], [1,1,1,1], [0,1,0,1], [0,0,0,1], [0,0,1,1]])
x, _, _, _ = np.linalg.lstsq(A,b)
H = x.T
p1101是一个[X,Y,Z,1]点,它对应于3D度量空间中的[1,1,0,1],等等。
然而,这不正确,因为我在射影空间中,所以我需要创造某种方程集,在其中将H的行与其最后一行相除或类似的操作。
我想也许有一个已实现的方法可以为我完成这项工作,例如在OpenCV中,但没有找到。任何帮助将不胜感激。