共线方程
双相机立体重建时,利用物体点-光心-像点的原理,找到左右匹配的像点并完成去畸变(OpenCV去畸变undistortPoints原理分析),可以在三维空间中形成两条直线,物体点是两条直线的交点,交点是指最小的二乘交点,因为这两条直线由于偏差通常不交点。共线方程描述了物体点-光心-像点三个共线的含义,也相当于从三维点到二维点的投影过程,可以表达为 [ x c y c z c ] = [ R 11 R 12 R 13 T x R 21 R 22 R 23 T y R 31 R 32 R 33 T z ] [ x w y w z w 1 ] (1) \begin{bmatrix} x_c \\ y_c \\ z_c \\ \end{bmatrix}=\begin{bmatrix} R_{11} & R_{12} & R_{13} & T_x \\ R_{21} & R_{22} & R_{23} & T_y\\ R_{31} & R_{32} & R_{33} & T_z \\ \end{bmatrix}\begin{bmatrix} x_w \\ y_w \\ z_w \\1\\ \end{bmatrix}\tag{1} ??xcyczc??=⎣⎡R11R21R31R12R22R32R13R23R33TxTyTz⎦⎤⎣⎢⎢⎡xwywzw1⎦⎥⎥⎤(1)
z c [ u v 1 ] = [ f x α c x 0 f y c y 0 0 1 ] [ x c y c z c ] (2) z_c \begin{bmatrix} u \\ v \\ 1 \\ \end{bmatrix}=\begin{bmatrix} f_x & \alpha & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \\ \end{bmatrix}\begin{bmatrix} x_c \\ y_c \\ z_c \\ \end{bmatrix}\tag{2} zc⎣⎡uv1⎦⎤=⎣⎡fx00αfy0cxcy1⎦⎤⎣⎡xcyczc⎦⎤(2)
解超定方程组
根据式(1)能够得到
{ x c = R 11 x w + R 12 y w + R 13 z w + T x y c = R 21 x w + R 22 y w + R 23 z w + T y z c = R 31 x w + R 32 y w + R 33 z w + T z (3) \left\{ \begin{array}{c} x_c=R_{11}x_w+R_{12}y_w+R_{13}z_w+T_x \\ y_c=R_{21}x_w+R_{22}y_w+R_{23}z_w+T_y \\ z_c=R_{31}x_w+R_{32}y_w+R_{33}z_w+T_z \\ \end{array} \right.\tag{3} ⎩⎨⎧xc=R11xw+R12yw+R13zw+Txyc=R21xw+R22yw+R23zw+Tyzc=R31xw+R32yw+R33zw+Tz(3) 进一步地, { x c ′ = x c / z c = R 11 x w + R 12 y w + R 13 z w + T x R 31 x w + R 32 y w + R 33 z w + T z y c ′ = y c / z c = R 21 x w + R 22 y w + R 23 z w + T y R 31 x w + R 32 y w + R 33 z w + T z (4) \left\{ \begin{array}{c} x'_c=x_c/z_c=\frac{R_{11}x_w+R_{12}y_w+R_{13}z_w+T_x}{R_{31}x_w+R_{32}y_w+R_{33}z_w+T_z} \\ y'_c=y_c/z_c=\frac{R_{21}x_w+R_{22}y_w+R_{23}z_w+T_y}{R_{31}x_w+R_{32}y_w+R_{33}z_w+T_z} \\ \end{array} \right.\tag{4} { xc′=xc/zc=R31xw+R32yw+R33zw