我创建了一个简单的测试应用程序,用于从基本矩阵中执行转换(T)和旋转(R)估计。
- 生成50个随机的点。
- 计算投影点集1。
- 通过矩阵(R|T)转换点。
- 计算新的投影点集2。
- 然后计算基本矩阵F。
- 提取像
E = K2^T F K1
这样的基本矩阵(K1、K2
是内部相机矩阵)。 - 使用SVD获取
UDV^T
。
然后计算restoredR1 = UWV^T
,restoredR2 = UW^T
。并查看其中一个是否等于初始的R。
但是当我计算平移向量restoredT = UZU^T
时,我得到了归一化的T。
restoredT*max(T.x, T.y, T.z) = T
如何恢复正确的平移向量?