云服务器

商务合作:179001057@qq.com

小孔模型及畸变总结

xiaoxiao2021-11-25  9


某平台价值19860元的编程课程资料免费领取【点我领取】


参考博客: 最详细、最完整的相机标定讲解

定义 ( X c , Y c , Z c ) (X_c,Y_c,Z_c) (Xc,Yc,Zc)表示相机坐标系下的坐标, ( x , y ) (x,y) (x,y)表示成像平面坐标系归一化坐标, ( u , v ) (u,v) (u,v)表示像素坐标, ( u 0 , v 0 ) (u_0,v_0) (u0,v0)表示像素中心坐标,每个像素占 1 k \frac{1}{k} k1x 1 l \frac{1}{l} l1物理坐标大小。像素坐标与物理坐标关系 x = ( u − u 0 ) / f k x=(u-u_0)/fk x=(uu0)/fk y = ( v − v 0 ) / f l y=(v-v_0)/fl y=(vv0)/fl小孔模型 x = X c Z c x=\frac{X_c}{Z_c} x=ZcXc y = Y c Z c y=\frac{Y_c}{Z_c} y=ZcYc 假设 ( x ˉ , y ˉ ) (\bar{x},\bar{y}) (xˉ,yˉ)为考虑径向畸变的实际成像坐标,则有 [ x ˉ y ˉ ] = [ d ( k 1 , k 2 , r 2 ) x d ( k 1 , k 2 , r 2 ) y ] , \left[ \begin{matrix} \bar{x}\\ \bar{y} \end{matrix} \right]= \left[ \begin{matrix} d(k_1,k_2,r^2)x \\ d(k_1,k_2,r^2)y \end{matrix} \right], [xˉyˉ]=[d(k1,k2,r2)xd(k1,k2,r2)y],其中 d ( k 1 , k 2 , r 2 ) = 1 + ( k 1 + k 2 r 2 ) , r 2 = x 2 + y 2 \quad d(k_1,k_2,r^2)=1+(k_1+k_2r^2),r^2=x^2+y^2 d(k1,k2,r2)=1+(k1+k2r2),r2=x2+y2 [ x ˉ − x y ˉ − y ] = [ ( k 1 r 2 + k 2 r 4 ) x ( k 1 r 2 + k 2 r 4 ) y ] \left[ \begin{matrix} \bar{x}-x \\ \bar{y}-y \end{matrix} \right]= \left[ \begin{matrix} (k_1r^2+k_2r^4)x \\ (k_1r^2+k_2r^4)y \end{matrix} \right] [xˉxyˉy]=[(k1r2+k2r4)x(k1r2+k2r4)y] 两边左乘矩阵 [ f k 0 0 f l ] \left[ \begin{matrix} fk& 0 \\ 0&fl \end{matrix} \right] [fk00fl]等于 [ u ˉ − u v ˉ − v ] = [ ( k 1 r 2 + k 2 r 4 ) ( u − u 0 ) ( k 1 r 2 + k 2 r 4 ) ( v − v 0 ) ] \left[ \begin{matrix} \bar{u}-u\\ \bar{v}-v \end{matrix} \right]= \left[ \begin{matrix} (k_1r^2+k_2r^4)(u-u_0) \\ (k_1r^2+k_2r^4)(v-v_0) \end{matrix} \right] [uˉuvˉv]=[(k1r2+k2r4)(uu0)(k1r2+k2r4)(vv0)] 因此 [ u ˉ v ˉ ] = ( 1 + k 1 r 2 + k 2 r 4 ) [ u − u 0 v − v 0 ] + [ u 0 v 0 ] = ( 1 + k 1 r 2 + k 2 r 4 ) [ f k 0 0 f l ] [ x y ] + [ u 0 v 0 ] \begin{aligned} \left[ \begin{matrix} \bar{u}\\ \bar{v} \end{matrix} \right] &= (1+k_1r^2+k_2r^4) \left[ \begin{matrix} u-u_0 \\ v-v_0 \end{matrix} \right]+ \left[ \begin{matrix} u_0\\ v_0 \end{matrix} \right] \\ &= (1+k_1r^2+k_2r^4) \left[ \begin{matrix} fk& 0 \\ 0&fl \end{matrix} \right] \left[ \begin{matrix} x \\ y \end{matrix} \right]+ \left[ \begin{matrix} u_0 \\ v_0 \end{matrix} \right] \end{aligned} [uˉvˉ]=(1+k1r2+k2r4)[uu0vv0]+[u0v0]=(1+k1r2+k2r4)[fk00fl][xy]+[u0v0]