一、相机畸变
1、畸变现象
我们都希望自己的相机是标准的,所有的参数都像生产商向我们阐述的那样,但是很不幸的是,几乎所有的相机都不是标准的。由于生产过程中光学仪器的不精确性,我们的相机成像的准确度会产生误差,我们把这种现象叫做畸变现象。
2、畸变类型
畸变类型分为两种,枕形畸变和桶型畸变。这两个畸变的产生前者是在长焦距下发生的,后者是在中短焦距下发生的。这两个畸变的描叙十分形象。
枕形畸变
桶形畸变
二、相机标定
1、畸变校正
我们可以标定出相机的畸变参数,内参矩阵,外参矩阵对相机进行参数调整,从而完成畸变校正。
畸变参数:计算机在径向和切向的畸变程度
内参矩阵:一个像素的物理尺寸dx和dy,焦距 f,图像物理坐标的扭曲因子r,图像原点相对于光心成像点的的纵横偏移量u和 v。
外参矩阵:世界坐标转换成相机坐标系的旋转和平移矩阵。
2、张正友棋盘格标定法
2、1棋盘格标定法介绍
一般进行相机标定需要使用现实世界的三维图像,利用线性代数的方法,对相机矩阵进行求解。但是,张正友教授提出了棋盘格标定法,即,利用棋盘格的多视角拍摄,利用二维图像代替三维图像进行标定。这个方法大大减少了标定的计算量,并且,棋盘格角点明显地特点,也大大增强了标定结果的准确性。
2、2 棋盘格标定流程
- 首先准备一张标准的棋盘格,以及合适的平面
- 拍摄多视角的照片,在十张到二十张左右为佳
- 从照片中提取棋盘格角点
- 估算理想情况下五个内参以及六个外参
- 用最小二乘法估算实际存在径向畸变下的畸变参数
- 用极大似然法提高估计精确度
这是本次用于相机标定的棋盘格
2、3 标定工具
matlab、vivo x7内置相机
2、4标定实现
我们这次使用matlab自带的camera calibrator工具包进行标定,十分方便有效。
将多角度拍摄的图片放进工具包里,进行计算。在控制台输入 cameraParams.IntrinsicMatrix就可获得标定矩阵
可以看到,由于是棋盘格,角点的标定非常精确。
这个是相机的标定矩阵