1. OpenCV去畸变undistortPoints原理解析
Opencv中镜头畸变包含了径向畸变和切向畸变,本章节主要阐述镜头畸变模型以及去畸变的原理。
1.1 镜头畸变模型
参考opencv文档 https://docs.opencv.org/3.1.0/d4/d94/tutorial_camera_calibration.html,opencv在相机标定时的采用的是带有三个参数的径向畸变模型和两个参数的切向畸变模型。
Opencv为了描述镜头畸变量引入了径向畸变参数和切向畸变参数,对于径向畸变参数如下所述:
理想像素坐标(无畸变像素坐标)(x,y),其对应在畸变图像中的坐标为(xd,yd)。
切向畸变是由于镜头组与成像平面不是严格平行引起的,可以用如下表达式表示:
因此,5畸变参数在Opencv中可用行向量表示为:
1.2 去畸变undistortPoints(不动点迭代法)
Opencv对特征点去畸变的原理是迭代法的一种:不动点迭代求解非线性方程的根,当然也可以用高斯牛顿法去畸变(参见另一篇博文)。不动点迭代法是将f(x) = 0 等价转换为x = φ(x)的形式,进而构造出迭代式的方法,但并不是所有的迭代形式都可以,需要满足迭代收敛的条件∣φ'(x)∣ < 1
。
1.3 高斯牛顿法去畸变