相机标定系列(三)利用matlab进行相机标定
文章目录
- 相机标定系列(三)利用matlab进行相机标定
- 前言
- 一、棋盘格图像的采集
- 二、单目相机标定
- 三、双目相机标定
前言
matlab的应用程序中含有对双目相机和单目相机的标定工具箱,能够获得相机的内、外参数以及畸变参数等。在理解了相机成像和单应矩阵的原理后,使用matlab应用程序对相机进行标定时理解起来会很轻松。
一、棋盘格图像的采集
1、棋盘格的来源:可以网上搜索棋盘格的图片,然后出来,把它贴在一个纸板上,作为标定板,注意纸板一定要平整。如果经常使用棋盘格,可以去网购一个相机标定板。
2、有了标定板,我们可以调整标定板对相机(单目或双目)的距离和角度,为标定板拍摄一些不同方向的图片,把这些图片放到一个文件中,双目相机的话,左右相机拍摄的图片分开放。 (这里建议相机保持不动,只调整标定板)
二、单目相机标定
注意:在单目相机标定过程中,默认情况下,世界坐标系和相机的相机坐标系是一致的。
在matlab的应用程序中找到Camera Calibration;
进入Camera Calibration;
选择add images,找到你放标定板图片的文件夹,把文件夹中所有的图片选中:
点击打开:
这里的25表示的棋盘格中一个格子的大小是25x25,我的棋盘格每个格子的大小为10x10,这里我会把25改成10,这个要根据你的棋盘格每个格子的大小自己进行修改。
点击确定:
仔细检查左边添加的图片,剔除坐标轴X,Y轴表反或坐标原点选错的图片。
选择三阶切向畸变和斜切:
点击Calibrate,进行相机标定:
右上角是重建平均误差,只要平均误差小于0.5,就可以认为这是相机标定的结果是可靠的。
我们把相机参数导出来,点击 Export Camera Parameters:
点击确定,就可以看到matlab工作区出现了相机参数:
点开这个参数,就可以得到相机的各个参数,
注意:这里得到相机的内参矩阵是被转置的,如果要得到真实的内参矩阵,需要对IntrinsicMatrix进行转置操作。
三、双目相机标定
注意:在双目相机标定过程中,默认情况下,世界坐标系和左相机的相机坐标系是一致的。
matlab中应用程序stereo camera calibrator是用来双目相机标定的,基本步骤和单目相机标定步骤相同,我这边就不做过多解释,直接上过程图了。
上图中,CameraParameters1为左相机的参数,CameraParameters2为右相机的参数。
如果您认可我的文章,希望能够关注我的微信公众号,我会不定期更新工作中学到的东西和一些技术比较前沿的东西。