图像畸变矫正
针孔相机模型不考虑镜头畸变,因为一个理想的针孔相机没有镜头。但是由于相机的结构中存在着一些光学透镜,导致成像后的图像发生了扭曲,原本直立的高楼变得扭曲。
一、图像畸变原因
图像畸变的原因有很多,现在只考虑由于相机本身引起的畸变。
1、镜头畸变
Ø 透镜由于制造精度以及组装工艺的偏差会引入畸变,导致原始图像的失真。
Ø 镜头的畸变分为径向畸变和切向畸变两类。
二、径向畸变
定义:由透镜的形状引起的畸变称为径向畸变。即沿着透镜半径方向分布的畸变,产生原因是光线在原理透镜中心的地方比靠近中心的地方更加弯曲,这种畸变在普通廉价的镜头中表现更加明显
1、径向畸变分类
径向畸变主要包括桶形畸变和枕形畸变两种。以下分别是枕形和桶形畸变示意图:
2、径向畸变的数学模型
在径向畸变中,成像仪光轴中心的畸变为0,沿着镜头半径方向向边缘移动,畸变越来越严重。畸变的数学模型可以用主点(光轴中心的点,其畸变为0)周围的泰勒级数展开式的前几项进行描述,通常使用前两项,即k1和k2,对于畸变很大的镜头,如鱼眼镜头,可以增加使用第三项k3来进行描述,成像仪上某点根据其在径向方向上的分布位置,调节公式为:
其中:(x0,y0)是畸变点在成像仪上的原始位置**(原始图片上的点的位置),(x,y)是畸变较真后新的位置((x0,y0)对应的畸变后的点的位置)**,r是以光轴中心的点为原点的半径。下图是距离光心不同距离上的点经过透镜径向畸变后点位的偏移示意图,可以看到,距离光心越远,径向位移越大,表示畸变也越大,在光心附近,几乎没有偏移。
三、切向畸变
定义:切向畸变是由于透镜本身与相机传感器平面(成像平面)或图像平面不平行而产生的,这种情况多是由于透镜被粘贴到镜头模组上的安装偏差导致。
1、切向畸变的数学模型
畸变模型可以用参数p1和p2来描述:
其中:(x0,y0)是畸变点在成像仪上的原始位置**(原始图片上的点的位置),(x,y)是畸变较真后新的位置((x0,y0)对应的畸变后的点的位置)**,r是以光轴中心的点为原点的半径。下图显示某个透镜的切向畸变示意图,大体上畸变位移相对于左下——右上角的连线是对称的,说明该镜头在垂直于该方向上有一个旋转角度。
四、畸变矫正
径向畸变和切向畸变模型中一共有5个畸变参数,在Opencv中他们被排列成一个5*1的矩阵,依次包含k1、k2、p1、p2、k3,经常被定义为Mat矩阵的形式,如Mat distCoeffs=Mat(1,5,CV_32FC1,Scalar::all(0));这5个参数就是相机标定中需要确定的相机的5个畸变系数。求得这5个参数后,就可以校正由于镜头畸变引起的图像的变形失真,下图显示根据镜头畸变系数校正后的效果:
https://blog.csdn.net/dcrmg/article/details/52950141