单目相机 MATLAB 参数标定详解

     在计算机视觉、机器人导航、三维重建等应用中,相机标定是获取精确图像信息的关键第一步。通过标定,我们可以获得相机的内参矩阵(如焦距、主点坐标)和畸变系数(如径向畸变、切向畸变),从而对图像进行校正,并实现从像素坐标到真实世界坐标的准确映射。
     本文将详细介绍如何使用 MATLAB 2025b 中自带的 Camera Calibrator App 对单目相机进行参数标定,涵盖从准备标定图像到导出标定结果的完整流程。

一、准备工作

1. 标定板选择

推荐使用标准的 棋盘格标定板(Checkerboard),因其角点特征清晰、易于自动检测。需提前测量并记录:
  • 棋盘格横向格数(如 9)
  • 纵向格数(如 6)
  • 每个方格的实际物理尺寸(如 25 mm)
⚠️ 注意:格子数量指的是“内角点”数量,而非方格总数。例如,一个 10×7 的棋盘有 9×6 个内角点。

2. 图像采集要求

  • 采集 15~30 张不同角度、不同距离的标定板图像;
  • 确保标定板在图像中覆盖大部分区域,且尽量出现在图像边缘;
  • 避免模糊、反光或遮挡;
  • 建议在固定光照条件下拍摄,以减少噪声干扰。

二、MATLAB 标定步骤

步骤 1:启动 Camera Calibrator 工具

打开 MATLAB 2025b,依次点击顶部菜单栏:

image

App → Image Processing and Computer Vision → Camera Calibrator

即可进入相机标定界面。

image

 

 2. 进入 Camera Calibrator

image

 

步骤 2:导入标定图像

点击 “Add Images” 按钮,选择已准备好的标定图像文件夹。
系统会弹出对话框,要求输入棋盘格参数:
  • Number of squares (width):横向内角点数(如 9)
  • Number of squares (height):纵向内角点数(如 6)
  • Square size:方格边长(单位:毫米或米,需统一)
✅ 建议单位使用 米(m),便于后续与雷达、IMU 等传感器单位对齐。
若部分图像无法检测到完整棋盘格,MATLAB 会自动跳过并提示,可手动剔除低质量图像。

image

 

 

步骤 3:配置标定选项(可选但重要)

参数根据你的真实的标定板修改为正确的参数

image

 

image

image

点击 “Calibration Options -> Radial Distortion(径向畸变)”,可调整以下参数:
这是镜头最常见的畸变类型,主要由透镜曲率引起,表现为图像中心与边缘之间的非线性拉伸或压缩。
  • 2 Coefficients:推荐用于普通相机,适用于大多数镜头;
  • 3 Coefficients:仅推荐用于大视场角镜头(如鱼眼镜头)
  • Skew:通常勾选 (现代相机传感器像素正交), 描述图像坐标系中 X 轴与 Y 轴是否垂直
  • Tangential Distortion:绝大多数情况建议勾选,因为即使是高质量相机也可能存在微小装配误差。

image

 

步骤 4:执行标定

点击 “Calibrate” 按钮,MATLAB 将自动计算相机内参和畸变参数,并显示重投影误差(Reprojection Errors)。
理想情况下,平均误差应小于 0.5 像素。若误差过大,需检查图像质量或补充更多视角。

image

步骤 5:可视化与验证

  • 查看 “Reprojection Errors” 图表,识别异常图像;
  • 使用 “Show Undistorted” 功能预览去畸变后的图像效果;
  • 可导出标定报告(PDF)用于存档。

image

 

步骤 6:导出标定参数

点击 “Export Camera Parameters”,将结果保存为 cameraParams 对象(cameraParameters 类型)。
该对象包含以下关键属性:

image

image

 

image

 

7.读取参数

cameraParams.IntrinsicMatrix;

  

image

 

cameraParams.RadialDistortion;

 

image

 

cameraParams.TangentialDistortion;

  

image

三、常见问题与建议

表格
 
问题原因解决方案
无法检测棋盘格 光照不足、模糊、角度过大 重新拍摄,确保清晰且正面
重投影误差高 图像数量少、分布不均 增加多角度图像,覆盖图像四角
标定结果不稳定 标定板尺寸输入错误 仔细核对方格物理尺寸
去畸变后图像裁剪严重 畸变过大或视场角广 考虑使用鱼眼模型(需用 fisheyeCalibrator)

结语

相机标定虽为基础步骤,却是精度保障的基石。借助 MATLAB 强大的工具箱,我们能高效、可靠地完成这一过程。建议将标定参数妥善保存,并定期对同一相机重新标定(尤其在环境温度变化大或镜头被触碰后)。

 

posted @ 2025-10-31 11:29  流逝的轻风  阅读(768)  评论(0)    收藏  举报