Matlab 双目相机标定
Write by Champrin on 2022-12-11
GUET Evolution Team Visual Group
Reference article:
双目相机标定——从MATLAB到OpenCV
本文使用 MATLAB R2022b
进行双目标定,不同版本之间或许有差异,比如在是否需要转置旋转矩阵上有差异。
- 命令行窗口输入
stereoCameraCalibrator
- 点击
Add Images
Folder for images from camera 1
选择左相机
所拍摄的标定棋盘图Folder for images from camera 2
选择右相机
所拍摄的标定棋盘图Size of checkerboard square
为每个棋盘格实际长度(mm)- 点击
确定
- 等待完成筛选有效标定图
Total stereo pairs processed
为总计标定图数量Added stereo pairs
为有效标定图数量Rejected stereo pairs
为无效标定图数量- 点击
确定
-
设置标定参数
OPTIONS
栏中- 选择畸变参数的不同表达形式
2 Coefficients
为 2 参数3 Coefficients
为 3 参数(3 个参数表达往往更精准?)
- 是否计算切向畸变,是则勾选
Tangential Distortion
- 是否认为图像坐标系中 x 和 y 轴是垂直的,是则勾选
Skew
- 如果勾选,那内参矩阵会有细微变化
- 选择畸变参数的不同表达形式
INTRINSICS
栏中,选择Compute Intrinsics
- 点击
Calibrate
-
- 点击
Show Rectified
查看校正后的结果 - 筛去误差大的标定图,鼠标点击选择或者拖拽红线选择
- 点击
Export Camera Parameters
- 点击
- 回到工作区查看标定结果
最终双目相机标定结果,后续使用OpenCV做双目测距所需参数:
-
stereoParams.CameraParameters1.Intrinsics
K
相机1(左相机)内参矩阵RadialDistortion
相机1(左相机)径向畸变向量TangentialDistortion
相机1(左相机)切向畸变向量
-
stereoParams.CameraParameters2.Intrinsics
K
相机2(右相机)内参矩阵RadialDistortion
相机2(右相机)径向畸变向量TangentialDistortion
相机2(右相机)切向畸变向量
-
stereoParams.PoseCamera2
R
相机1(左相机)到相机2(右相机)的旋转矩阵,也即相机2(右相机)相对于相机1(左相机)的旋转矩阵Translation
相机1(左相机)到相机2(右相机)的平移矩阵,也即也即相机2(右相机)相对于相机1(左相机)的平移矩阵