相机标定&去畸变¶
到目前位置,相机的模型已经建立起来了,以下公式中的矩阵描述了相机的固有参数
\begin{bmatrix}
f_x & 0 & c_x \\
0 & f_y & c_y \\
0 & 0 & 1
\end{bmatrix}
有时(u_0, v_0)也写作(c_x,c_y)
以及畸变参数:
Distortion_{coefficients} = (k_1 k_2 p_1 p_2 k_3)
决定这两个矩阵的过程,便是相机标定。通常,把摄像机对准一个有很多独立可标识点的物体,在不同角度观看这个物体,进一步可通过每个图像来计算摄像机的相对位置和方向,以及摄像机的内参。
在内参标定完成后,可以建立三维坐标和二维图像的关系:
\begin{bmatrix} x \\ y \end{bmatrix}=\begin{bmatrix} f_{x}\dfrac {X_{c}}{Z_{c}}+c_x \\ f_y\dfrac {Y_{c}}{Z_{c}}+c_{y} \end{bmatrix}
综合径向畸变和切向畸变,我们总结出去畸变公式:
- Ideal point (x_u,y_u)为理想点
- real point (x_d,y_d)为实际点
- dr为径向畸变,参数为\{k_1,k_2,k_3\}
- dt为切向畸变,参数为\{p_1,p_2\}
于是通过下面的变换,可以得到没有畸变的标定结果:
\begin{aligned}
x_{corrected}=x\left( 1+k_{1}r^{2}+k_{2}r^{4}+k_{3}r^{6}\right)+[ 2p_1xy+p_{2}( r^{2}+2x^{2})] \\
y_{corrected}=y\left( 1+k_{1}r^{2}+k_{2}r^{4}+k_{3}r^{6}\right)+[ p_{1}( r^{2}+2y^{2}) +2p_{2}xy ] \\
(r^2 = x^2 + y^2)
\end{aligned}
等式右边的(x,y)为得到的图像中的理想点,但是存在畸变,于是把其带入等式右边,经过径向和切向变换后,得到左边的畸变校正后的实际点坐标(x_{corrected},y_{corrected}),取出对应颜色值作为(x,y)的颜色值即可。通过去畸变,可以完成图像的矫正,如下图: