基础矩阵的估计-通过匹配的像点对计算两幅图像的基础矩阵---计算照相机矩阵(附GitHub代码)
基础矩阵的估计原理详述
通过匹配点对估算基础矩阵
对极几何:基础矩阵是对极几何的代数表达方式。
基础矩阵表示的是图像像点p1到另一幅图像对极线l2的映射,有如下公式: l 2 = F p 1 \ l_2 = Fp_1 l2=Fp1
而和像点P1匹配的另一个像点p2必定在对极线l2上,所以就有:
p 2 T l 2 = p 2 T F p 1 = 0 \ p_2^Tl_2 = p_2^TFp_1 = 0 p2Tl2=p2TFp1=0
这样仅通过匹配的点对,就可以计算出两视图的基础矩阵 F F F。
基础矩阵F是一个3×3的矩阵,有9个未知元素。然而,上面的公式中使用的齐次坐标,齐次坐标在相差一个常数因子下是相等,F也就只有8个未知元素,也就是说,只需要8对匹配的点对就可以求解出两视图的基础矩阵 F F F。
下面介绍8点法计算基础矩阵的过程。
假设一对匹配的像点 p 1 = [ u 1 , v 1 , 1 ] T , p 2 = [ u 2 , v 2 , 1 ] T p_1=[u_1,v_1,1]^T,p_2=[u_2,v_2,1]^T p1=[u1,v1,1]T,p2=[u2,v2,1]T ,带入式子中,得到: [ u 1 , v 1 , 1 ] [ f 1 f 2 f 3 f 4 f 5 f 6 f 7 f 8 f 9 ] [ u 2 v 2 1 ] = 0 \ [u_1,v_1,1]\left[\begin{array}{ccc}f_1&f_2&f_3\\f_4&f_5&f_6\\f_7&f_8&f_9\end{array}\right] \left[\begin{array}{c}u_2\\v_2\\1\end{array}\right] = 0 [u1,v1,1]⎣⎡f1f4f7f2f5f8f3f6f9⎦⎤⎣⎡u2v21⎦⎤=0
把基础矩阵F的各个元素当作一个向量处理 f = [ f 1 , f 2 , f 3 , f 4 , f 5 , f 6 , f 7 , f 8 , f 9 ] \ f = [f_1,f_2,f_3,f_4,f_5,f_6,f_7,f_8,f_9] f=[f1,f2,f3,f4,f5,f6,f7,f8,f9]
那么上面式子可以写为 [ u 1 u 2 , u 1 v 2 , u 1