Undistort & Transform Perspective

/ 0评 / 0

图像失真与透视变换

失真(distortion)

​ 图像失真通常发生在摄像机将3D转为2D时。失真改变了3D物体实际的大小形状。

失真分类
失真的系数和校正

​ ————(Coefficients and Correction)

校正径向失真图片的系数 $k_1,k_2,k_3$ , $(x,y)$是失真图中的点,$r=dis( (x_{corrected},y_{corrected}),(x_c, y_c))$ ,前者是校正后图中的点,后者是校正后图片的中心也是相机的光学中心(distortion center)

下面是两种失真的校正表达式

radial distortion :$\left\{\begin{matrix}
x_{corrected}=x(1+k_1r^2+k_2r^4+k_3r^6) \\
y_{corrected}=y(1+k_1r^2+k_2r^4+k_3r^6)\end{matrix}\right.
$

tangential distortion: $\left\{\begin{matrix} x_{corrected}=x+[2p_1xy+p_2(r^2+2x^2)] \\ y_{corrected}=y+[2p_2xy+p_1(r^2+2y^2)]\end{matrix}\right.$

Finding Corners 探测内角

​ use OpenCV functions findChessboardCorners() and drawChessboardCorners() to automatically find and draw corners in an image of a chessboard pattern.

Camera Calibration 相机校准

相机内参

1. cameraMatrix

​ 焦距$(f_x,f_y)$ ,光学中心$(c_x,c_y)$ 表示成摄像机Matrix =$\begin{bmatrix} f_x&0 &c_x \\0 &f_y &c_y \\ 0&0 &1\end{bmatrix}$

2. distCoeffs 失真系数向量$(k_1,k_2,p_1,p_2[,k_3[,k_4,k_5,k_6]])$

​ 通过cameraMatrix和distCoeffs将世界坐标系转换到摄像机坐标系

相机外参

​ 外参与旋转和平移矩阵(rotation-translation matrix)相对应,用来将点的坐标固定成相机坐标也就是在相机中确定坐标轴,将3D点的坐标转换到坐标系统中

​ 3D点称为对象点(世界坐标系),2D点称为图像点(平面坐标系)

透视变换

使用透视变换将3D点投影到图形平面中形成场景视图:

​ $$s{m}'=A[R|t]{M}'$$

or

​ $s\begin{bmatrix} u \\ v \\ 1 \end{bmatrix}=\begin{bmatrix} f_x&0 &c_x \\0 &f_y &c_y \\ 0&0 &1\end{bmatrix}\begin{bmatrix} r_{11}&r_{12} &r_{13}&t_1 \\r_{21} &r_{22} &r_{23}&t_2 \\ r_{31}&r_{32} &r_{33}&t_3\end{bmatrix} \begin{bmatrix} X \\ Y \\ Z \\ 1 \end{bmatrix}$

calibrateCamera参数解释

IN: objectPoints, imagePoints, imageSize, cameraMatrix, distCoeffs

OUT: retval, cameraMatrix, distCoeffs, rvecs, tvecs

获取2D坐标code:

畸变校正

效果图:TIM截图20171113162351

扭曲与校正图像

效果图:TIM截图20171113162351

发表评论

电子邮件地址不会被公开。 必填项已用*标注