现实生活中的图像总存在畸变。原则上来说,针孔透视相机应该将三维世界中的直线投影成直线,但是当我们使用广角和鱼眼镜头时,由于畸变的原因,直线在图像里看起来是扭曲的。如下图所示:
可以明显看到实际的柱子、箱子的直线边缘在图像中被扭曲成了曲线。这就是由相机畸变造成的。在这里,我们只考虑径向畸变和切向畸变,畸变模型是叠加在归一化平面(投影模型)上的。径向切向畸变公式合起来写如下:
其中,
$x_{distorted},y_{distorted}$表示畸变后的投影模型上的坐标
$x,y$表示畸变前的投影模型上的坐标
$r^2=x^2+y^2$
去畸变思路:构建一个空白的图像(去畸变后的图像),然后遍历空白图像的每个像素点,通过像素点$\rightarrow$归一化平面坐标$\rightarrow$畸变模型$\rightarrow$畸变图像上的像素坐标,从而得到了去畸变后的图像与畸变图像像素坐标之间对应关系,由此问题得解。
1 | // 计算去畸变后图像的内容 |
可以看到去畸变后,箱子和柱子边缘的线明显变直了: