惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 流逝的轻风

3D点云到2D点云投影图像具体方法 - 流逝的轻风 nmcli修改ip地址 nginx 交叉编译报错问题解决(转) 图片转视频并推流源码,已通过测试 Hadoop的安装,图文并茂的安装过程 线程占用等待释放解决方案 ffmpeg重新编码示例 编译ffmpeg以支持rtmp, librtmp not found问题 瑞芯微rk3399实现硬编硬解编译rkmpp到ffmpeg Openc4.8QT中编译异常处理 yolov8模型转onnx MIPS编译opencv-自用 docker启动ubuntu,并映射端口 mips交叉编译相关库文件,主要做以后参考 OPENSSL1.1交叉编译编译异常处理 mips交叉编译ffmpeg 关于/proc/id/status中内容的描述 Linux GPIO控制方法 A7-NXP-6G2C修改分驱大小
单目相机 MATLAB 参数标定详解
流逝的轻风 · 2025-10-31 · via 博客园 - 流逝的轻风

     在计算机视觉、机器人导航、三维重建等应用中,相机标定是获取精确图像信息的关键第一步。通过标定,我们可以获得相机的内参矩阵(如焦距、主点坐标)和畸变系数(如径向畸变、切向畸变),从而对图像进行校正,并实现从像素坐标到真实世界坐标的准确映射。

     本文将详细介绍如何使用 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 强大的工具箱,我们能高效、可靠地完成这一过程。建议将标定参数妥善保存,并定期对同一相机重新标定(尤其在环境温度变化大或镜头被触碰后)。