注意:本文中的代码必须使用OpenCV3.0或以上版本进行编译,因为很多函数是3.0以后才加入的。
目录:
文章目录
#极线约束与本征矩阵
在三维重建前,我们先研究一下同一点在两个相机中的像的关系。假设在世界坐标系中有一点 p p p,坐标为 X X X,它在1相机中的像为 x 1 x_1 x1,在2相机中的像为 x 2 x_2 x2(注意 x 1 x_1 x1和 x 2 x_2 x2为齐次坐标,最后一个元素是1),如下图。
设 X X X到两个相机像面的垂直距离分别为 s 1 s_1 s1和 s 2 s_2 s2,且这两个相机具有相同的内参矩阵 K K K,与世界坐标系之间的变换关系分别为 [ R 1 T 1 ] [R_1\ \ T_1] [R1 T1]和 [ R 2 T 2 ] [R_2\ \ T_2] [R2 T2],那么我们可以得到下面两个等式
s 1 x 1 = K ( R 1 X + T 1 ) s 2 x 2 = K ( R 2 X + T 2 ) s_1x_1 = K(R_1X + T_1) \\ s_2x_2 = K(R_2X + T_2) s1x1=K(R1X+T1)s2x2=K(R2X+T2)
由于K是可逆矩阵,两式坐乘K的逆,有
s 1 K − 1 x 1 = R 1 X + T 1 s 2 K − 1 x 2 = R 2 X + T 2 s_1K^{-1}x_1 = R_1X + T_1 \\ s_2K^{-1}x_2 = R_2X + T_2 s1K−1x1=R1X+T1s2K−1x2=R2X+T2
设 K − 1 x 1 = x 1 ′ K^{-1}x_1 = x_1^{'} K−1x1=x1′, K − 1 x 2 = x 2 ′ K^{-1}x_2 = x_2^{'}