给定相机内参与畸变系数将三维点投影到像素点

摘要 : 本文主要写了,将相机坐标系上的点投影到像素平面上,并去畸变的过程,并附带C# 代码实现。

基础知识部分可以参考这位博主的文章(点击蓝色字体即可跳转)。

当不考虑畸变时, 投影方程如下所示:
给定相机内参与畸变系数将三维点投影到像素点_第1张图片

当考虑畸变时:
给定相机内参与畸变系数将三维点投影到像素点_第2张图片

切向畸变可以用下面式子去矫正:
给定相机内参与畸变系数将三维点投影到像素点_第3张图片
x c o r r = x d i s ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 ) + 2 p 1 x d i s y d i s + p 2 ( r 2 + 2 x d i s 2 ) x_{corr} = x_{dis}(1 + k_1r^2 + k_2r^4 + k_3r^6) + 2p_1x_{dis}y_{dis} + p_2(r^2 + 2x_{dis}^2) xcorr=xdis(1+k1r2+k2r4+k3r6)+2p1xdisydis+p2(r2+2xdis2)
y c o r r = y d i s ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 ) + p 1 ( r 2 + 2 y d i s 2 ) + 2 p 2 x d i s y d i s y_{corr} = y_{dis}(1 + k_1r^2 + k_2r^4 + k_3r^6) + p_1(r^2 + 2y_{dis}^2)+ 2p_2x_{dis}y_{dis} ycorr=ydis(1+k1r2+k2r4+k3r6)+p1(r2+2ydis2)+2p2xdisydis

其中, ( x c o r r , y c o r r ) (x_{corr} , y_{corr} ) xcorr,ycorr 在归一化相机平面上( z c = 1 z_c = 1 zc=1),我们需要将其还原到像素坐标,就是去畸变后的像素坐标了。

u , = x c o r r ∗ f x + c x u^, = x_{corr} *f_x + c_x u,=xcorrfx+cx
v , = y c o r r ∗ f y + c y v^, = y_{corr} *f_y + c_y v,=ycorrfy+cy

   public static void Project2(Matrix<double> cameraMatrix, Vector<double> distCoeffs, Point3D point, out Point2D projectedPoint)
        {
            double xp = point.X / point.Z;
            double yp = point.Y / point.Z;

            double fx = cameraMatrix[0, 0];
            double fy = cameraMatrix[1, 1];
            double cx = cameraMatrix[0, 2];
            double cy = cameraMatrix[1, 2];
            double k1 = distCoeffs[0];
            double k2 = distCoeffs[1];
            double k3 = distCoeffs[4];
            double p1 = distCoeffs[2];
            double p2 = distCoeffs[3];

            // compute f(xp, yp)
            double rsquared = xp * xp + yp * yp;
            double g = 1 + k1 * rsquared + k2 * rsquared * rsquared + k3 * rsquared * rsquared * rsquared;
            double xpp = xp * g + 2 * p1 * xp * yp + p2 * (rsquared + 2 * xp * xp);
            double ypp = yp * g + p1 * (rsquared + 2 * yp * yp) + 2* p2 * xp * yp;
            projectedPoint = new Point2D(fx * xpp + cx, fy * ypp + cy);
        }

参考链接:
1、知乎 摄像机模型、坐标系转换及去畸变详解

你可能感兴趣的:(相机标定,计算机视觉)