我创建了一个简单的测试应用程序来执行翻译(T)和旋转(R)从基本矩阵进行估计。
- 生成 50 个随机数Points.
- 计算投影点集1.
- 转换Points通过矩阵 (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
如何恢复正确的平移向量?
我明白!这一步我不需要实际长度估计。
当我获得第一张图像时,我必须设置公制变换(比例因子)或根据已知物体的校准来估计它。之后,当我收到第二帧时,我计算标准化 T,并使用第一帧的已知 3d 坐标来求解方程 (sx2, sy2, 1) = K(R|lambdaT)(X,Y,Z);并找到 lambda - 比 lambdaT 将是正确的公制翻译...
我检查了一下,这是真的/所以......也许谁知道更简单的解决方案?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)