双目摄像头标定
本文选择使用Matlab进行标定。
标定过程分3步,接下来分步详细展开:
- 使用棋盘格生产图像
- 使用图像在Matlab中标定
- 使用标定系数
第一步:使用棋盘格生产图像

- 打印棋盘格纸(这一步建议选择矩形棋盘格,否则容易因为原点不同出现标定偏差,本文版本放在文末了)
- 在目录下创建两个文件夹:frameRight、frameLeft
- 执行ImageCaptureFromCamera.py
- 分别使得棋盘在两个摄像头视野中的不同角度,按空格键创建图片
第二步:使用图像在Matlab中标定
- 参考Matlab官网介绍(https://cn.mathworks.com/help/vision/ug/stereo-camera-calibrator-app.html?s_tid=gn_loc_drop)
- 打开Matlab的Stereo Camera Calibrate应用
- 添加图片,1选择Left目录,2选择Right目录,长度填入真实棋盘长度(18)mm
- 径向畸变选择3参数,选择切向畸变
- 开始校正
- 导出参数
第三步:使用标定系数
- 参考Opencv官网(https://docs.opencv.org/3.3.1/d9/d0c/group__calib3d.html#ga617b1685d4059c6040827800e72ad2b6)
- 调用Opencv的stereoCalibrate()函数
-
参数对应关系如下:
Matlab Opencv RotationOfCamera2 R TranslationOfCamera2 T CameraParameters1.IntrinsicMatrix left_camera_matrix CameraParameters1.RadialDistortion left_distortion CameraParameters1.TangentialDistortion left_distortion CameraParameters2.IntrinsicMatrix right_camera_matrix CameraParameters2.RadialDistortion right_distortion CameraParameters2.TangentialDistortion right_distortion
camera_matrix:Opencv的参数是由Matlab参数转置得到的。
特别感谢:清华大学的董同学指导。