9

我校准了我的相机并找到了内在参数(K)。我还计算了基本矩阵(F)。

现在 E= K_T* F * K 。到目前为止,一切都很好。

现在我们将基本矩阵 (E) 传递给 SVD,以使用分解值 (U,W,V) 来提取旋转和平移:

 essentialMatrix = K.Transpose().Mul(fund).Mul(K);
 CvInvoke.cvSVD(essentialMatrix, wMatrix, uMatrix, vMatrix, Emgu.CV.CvEnum.SVD_TYPE.CV_SVD_DEFAULT);

** 问题)在这一点上,提出了两种方法,我很困惑哪一种方法真正给出了正确的答案——专门用于翻译:

首先方法在这里输入链接描述作者建议计算R,T如下:

在此处输入图像描述

但在第二种方法 [ http://isit.u-clermont1.fr/~ab/Classes/DIKU-3DCV2/Handouts/Lecture16.pdf]中,作者为 T 提供了另一个公式,即 +U , -U 如下所示:

在此处输入图像描述

我正在使用 openCv 库在 C# .Net 上实现它。有人知道哪个翻译公式是正确的吗?

4

1 回答 1

4

第一个解决方案显示了向量 t 的叉积的矩阵表示(因此第一个解决方案 = [t]x ),而第二个解决方案仅显示了平移向量 t (https://en.wikipedia.org/wiki/Essential_matrix) .

[t]x 的定义为:

在此处输入图像描述

(来自http://gandalf-library.sourceforge.net/tutorial/report/img148.png

于 2013-05-19T18:50:07.813 回答