车载环视拼接系统的设计与实现(三):鱼眼畸变校正算法

       上一部分(车载环视拼接系统的设计与实现(二))讨论的摄像机模型是理想的线性模型,但是在现实中并不存在这样完全没有畸变的透镜,这主要是制造上的原因,因为制作一个球形透镜比制作一个数学上理想的透镜更容易,另外从机械制作方面考虑也很难把成像仪和透镜保持平行的状态,现实应用中一般只考虑两种透镜畸变,分别是切向畸变和径向畸变,切向畸变产生的原因主要是摄像头生产安装过程中在工艺上的缺陷,而径向畸变则来自于透镜的形状。

       鱼眼摄像机径向畸变模型如下图所示,存在着中间大两边小的特点,径向畸变就是沿着透镜半径方向分布的畸变,对于廉价的摄像头产生径向畸变的情况更加明显,径向畸变主要包括桶形畸变和枕形畸变两种。成像仪光轴中心的畸变为0,沿着镜头半径方向边缘移动,畸变越来越严重。对于畸变很大的镜头,如鱼眼镜头,可以利用两个畸变参数K1、K2描述。

       切向畸变是由于透镜本身与相机传感器平面(成像平面)或图像平面在制作上放置不平行所产生的,这种不平行的情况多半是透镜被粘贴到镜头模组上安装时产生的偏差导致。畸变模型可以用两个额外的参数K3、K4来描述。

 

 

            (1)无畸变模型(2)鱼眼畸变模型

 

鱼眼畸变校正算法:

实际中广泛应用的畸变校正方法是基于标定的校正方法,这类方法通过标定获取摄像机的内参数,即车载环视拼接系统的设计与实现(二)提到的摄像机内部参数,再通过摄像机成像过程坐标映射关系建立畸变模型。

假设(Xw,Yw,Zw)为世界坐标系下一个三维坐标点,投影到鱼眼图像中的像素点为(u,v),则可以根据车载环视拼接系统的设计与实现(二)摄像机理想线性坐标系变换即物体世界坐标点到像素坐标点的过程,结合切向径向畸变系数K1、K2、K3、K4推导出畸变图像成像模型的数学表达式。

世界坐标系到相机坐标系转换如下:

 

可以利用以下数学模型来描述畸变模型,假设摄像机坐标系下归一化坐标点:

 

 

 

鱼眼畸变非线性失真模型: 该失真模型是从OPCV3.0官方库文件里面来的可参考

https://docs.opencv.org/3.0.0/db/d58/group__calib3d__fisheye.html

 

注意: opencv3.0以上加入了 fisheye 鱼眼畸变模型,相比于opencv1 opencv2 的普通相机模型的去畸变效果要好。

 

其中r为像点距离图像中心的径向半径,K1、K2、K3、K4为畸变参数,K1、K2为径向畸变参数,K3、K4为切向畸变参数.

 

令:

则有鱼眼畸变图像素点:

 

其中为fx,fy,Cx,Cy摄像机内参。因此我们可以利用上述数学模型来得出世界坐标系中的点(Xw,Yw,Zw)到鱼眼图像的像素位置(u,v)过程,这是非线性过程。只要我们利用上式中无畸变成像模型中像素坐标(u,v),即畸变矫正图像像素坐标(u1,v1),逆推出相机坐标系归一化点,即:

再利用上述畸变模型数学表达式从归一化坐标点到鱼眼图像像素坐标(u,v),即可求出鱼眼图像像素点和矫正图像像素点对应关系。后面需要用到这个关系,因为我们一般鱼眼图像是已知的,需要求的是矫正后的图像,因此只要确定矫正图像的大小,找到对应于鱼眼图像的像素点就可以了。

 

  • 7
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值