Correct way to extract Translation from Essential Matrix through SVD
I calibrated my camera and found the intrinsic parameters(K). Also I have calculated the Fundamental Matrix (F).
Now E= K_T* F * K . So far so good.
Now we pass the Essential Matrix(E) to the SVD to use the decomposition values (U,W,V) to extract the Rotation and Translation:
essentialMatrix = K.Transpose().Mul(fund).Mul(K);
CvInvoke.cvSVD(essentialMatrix, wMatrix, uMatrix, vMatrix, Emgu.CV.CvEnum.SVD_TYPE.CV_SVD_DEFAULT);
** Question) At this point, two methods have been proposed, and it has confused me which one really give out the right answer- specifically for Translation:
At first method enter link description here the author suggests to compute the R,T as following:
But in Second method [http://isit.u-clermont1.fr/~ab/Classes/DIKU-3DCV2/Handouts/Lecture16.pdf] the author provides another formula for T which is +U , -U as shown below:
I am implementing this on C# .Net using openCv libraries. Anybody knows which Translation Formula is the right one?
the first solution shows the matrix representation of the cross product with vector t (so first solution = [t]x ), while the second solution shows just the translation vector t (https://en.wikipedia.org/wiki/Essential_matrix).
The definition of [t]x is:
(from http://gandalf-library.sourceforge.net/tutorial/report/img148.png)
链接地址: http://www.djcxy.com/p/70876.html上一篇: 使用MODX时什么是最好的部署实践?
下一篇: 通过SVD从基本矩阵中提取翻译的正确方法