双目重建之图像畸变矫正

本文详细介绍了相机成像过程中出现的径向畸变和切向畸变现象,这两种畸变主要由透镜制造误差和组装偏差造成。通过泰勒级数展开式描述了径向畸变的矫正模型,包括枕形畸变和桶形畸变,并用k1、k2、k3参数表示。切向畸变则由于透镜与成像平面不平行导致,采用p1和p2参数进行描述。文章还提供了校正这些畸变的数学公式,用于实际图像处理中对像素坐标的校正。
摘要由CSDN通过智能技术生成

相机的成像过程实质上是坐标系的转换。首先空间中的点由 “世界坐标系” 转换到 “像机坐标系”,然后再将其投影到成像平面 ( 图像物理坐标系 ) ,最后再将成像平面上的数据转换到 图像像素坐标系。但是由于透镜制造精度以及组装工艺的偏差会引入畸变,导致原始图像的失真。
图像及畸变主要有两种:径向畸变、切向畸变
(双目标定后会得到内参K、外参RT,以及畸变参数k1,k2,k3,p1,p2)

1.径向畸变:正中心位置的畸变最小,随着半径的增大,畸变增大。径向畸变可以分为枕形畸变和桶形畸变:
径向畸变
成像仪光轴中心的畸变为0,沿着镜头半径方向向边缘移动,畸变越来越严重。畸变的数学模型可以用主点(principle point)周围的泰勒级数展开式的前几项进行描述,通常使用前两项,即k1和k2,对于畸变很大的镜头,如鱼眼镜头,可以增加使用第三项k3来进行描述,成像仪上某点根据其在径向方向上的分布位置,调节公式如下(泰勒级数展开式前3项):

x r = x ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 ) x_r = x(1+k_1r^2+k_2r^4+k_3r^6) xr=x(1+k1r2+k2r4+k3r6)
y r = y ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 ) y_r = y(1+k_1r^2+k_2r^4+k_3r^6) yr=y(1+k1r2+k2r4+k3r6)

其中, x r y r x_r y_r xryr为畸变后的像素坐标,也就是相机取图后得到的图像坐标, x y x y xy为理想坐标,即为去去畸变后的坐标,另外, r 2 = x 2 + y 2 r^2=x^2+y^2 r2=x2+y2

2.切向畸变:在透镜与成像平面不平行时就会产生,类似于透视变换。
在这里插入图片描述
切向畸变是由于透镜本身与相机传感器平面(成像平面)或图像平面不平行而产生的,这种情况多是由于透镜被粘贴到镜头模组上的安装偏差导致。畸变模型可以用两个额外的参数p1和p2来描述:
x t = x + [ 2 p 1 y + p 2 ( r 2 + 2 x 2 ) ] x_t=x+[2p_1y+p_2(r^2+2x^2)] xt=x+[2p1y+p2(r2+2x2)]
y t = y + [ 2 p 2 x + p 1 ( r 2 + 2 y 2 ) ] y_t=y+[2p_2x+p_1(r^2+2y^2)] yt=y+[2p2x+p1(r2+2y2)]

计算得到 x r y r x t y t x_r y_r x_t y_t xryrxtyt后,左右图像对应点坐标畸变校正公式如下:
x = ( x 0 − ( 2 p 1 y + p 2 ( r 2 + 2 x 2 ) ) ) ∗ ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 ) x=(x_0-(2p_1y+p_2(r^2+2x^2)))*(1+k_1r^2+k_2r^4+k_3r^6) x=(x0(2p1y+p2(r2+2x2)))(1+k1r2+k2r4+k3r6)
y = ( y 0 − ( 2 p 2 x + p 1 ( r 2 + 2 y 2 ) ) ∗ ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 ) y=(y_0-(2p_2x+p_1(r^2+2y^2))*(1+k_1r^2+k_2r^4+k_3r^6) y=(y0(2p2x+p1(r2+2y2))(1+k1r2+k2r4+k3r6)

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值