1

我正在尝试从基本矩阵中提取相机矩阵。我找到了一些关于这个的答案。

从基本矩阵确定相机旋转和平移矩阵

基本矩阵的旋转和平移不正确

在这些答案中,他们建议我使用newEwhere[U,S,V] = svd(E)newE = U*diag(1,1,0)*Vt. 我不明白为什么我需要使用newE. 据我所知,奇异值是独一无二的。因此,将奇异值更改为diag(1,1,0)似乎会产生E完全不同的值。

我还阅读了“计算机视觉中的多视图几何”,但它只是指理想情​​况,即奇异值是 (1,1,0)。我没有找到使用的原因newE

请谁能解释我为什么人们使用newE

4

1 回答 1

0

如果我正确理解您的问题,那么由于您的源数据(因此E)通常是嘈杂的现实世界数据,那么通过使用diag(1,1,0)您将矩阵约束为正确的比例和等级,并以代数方式强制执行几何约束。

维基百科也有一个很好的部分来解释这一点。

于 2017-01-17T09:34:03.223 回答