下图展示了针孔相机模型。

透视投影的几何示意图如下:

针孔相机的实际镜头通常存在一定程度的畸变,主要为径向畸变,切向畸变较小。因此,上述模型扩展为:
其中,
且,
如果 。
是径向畸变系数。
是切向畸变系数,
是薄棱镜畸变系数。OpenCV 中不考虑高阶系数。
下图展示了两种常见的径向畸变:桶形畸变 (单调递减)和枕形失真
(单调递增)。对于实际镜头,径向畸变始终是单调的,如果估计器产生非单调结果,则应视为校准失败。更一般地,径向畸变必须是单调的,并且畸变函数必须是双射的。失败的估计结果在图像中心附近可能看起来非常好,但在例如 AR/SFM 应用中效果很差。OpenCV 相机校准中使用的优化方法不包含这些约束,因为该框架不支持所需的整数规划和多项式不等式。


在以下函数中,系数以如下方式传递或返回:
通常opencv通常的模型中,主要有下面两种
5-系数畸变参数,
8-系数畸变参数,
着畸变系数与拍摄场景无关,因此它们也属于相机的固有参数,并且与拍摄图像的分辨率无关。
如果一台相机使用 320 x 240 分辨率的图像进行校准,那么对于同一台相机拍摄的 640 x 480 分辨率的图像,可以使用完全相同的畸变系数。
换句话说,调整图像的分辨率,畸变参数不影响,但是 和
需要进行适当调整。