功能:从本质矩阵恢复变换的R、t

格式:
[n , R1 , t1 , R2 , t2] = SLAM_EssentialMatrixToRt(eMat , p0 , p1 , k0 , k1 , isSvd)
[n , R1 , t1 , R2 , t2] = SLAM_EssentialMatrixToRt(eMat , p0 , p1 , k0 , k1)
[n , R1 , t1 , R2 , t2] = SLAM_EssentialMatrixToRt(eMat , p0 , p1 , k0)
[n , R1 , t1 , R2 , t2] = SLAM_EssentialMatrixToRt(eMat , p0 , p1)
[n , R1 , t1 , R2 , t2] = SLAM_EssentialMatrixToRt(eMat , p0)
[n , R1 , t1 , R2 , t2] = SLAM_EssentialMatrixToRt(eMat)

eMat:一个3*3的本质矩阵
p0  :一个列数不少于2的配对点相机坐标矩阵,每一行的前两列存储相机坐标
p1  :一个列数不少于2的配对点相机坐标矩阵,每一行的前两列存储相机坐标
k0  :一个3*3的p0所在相机的内参,如果p0已经使用内参归一化,可以设置本参数为空
k1  :一个3*3的p1所在相机的内参,如果p1已经使用内参归一化,可以设置本参数为空,注意如果本参数为空时,默认与k0的值一致
isSvd:是否采用奇异值分解求解,为0时不采用,默认参数为0(即采用快速求解算法求解)

n   :返回执行的结果标志,如果为-1表示参数有误,如果为0表示分解的结果不满足相关条件约束,如果返回1表示得到一个正确结果即R1,t1;返回2时表示分解得到4组可能解(R1,t1)、(R1,t2)、(R2,t1)、(R2,t2)。注意只有当p0设置为空时才可能返回参数2
R1  :返回的旋转矩阵
t1  :返回的偏移
R2  :返回的旋转矩阵
t2  :返回的偏移

原理:{SLAM之本质矩阵分解得相对变换的R和t<http://www.mathsword.com/slamessentialmatrixgetrt/>}

说明:
1、当设置参数p0或者p1为空时,这时表示直接分解本质矩阵eMat,这时会得到4组解,其中返回两个旋转矩阵R1,R2以及两个偏移t1,t2
2、当设置参数p0与p1时,程序分解得到后将采用三角化来确定哪组解是正确解,因此最终只可能返回一个R1,t1 
3、如果不设置k0或k1,则表示p0与p1已经使用相机内参进行归一化,这时k0与k1等价为单位阵
