单相机标定程序
相机标定概述
您可以使用相机标定程序估计相机内参数,外参数,镜头畸变参数。您可以使用
这些相机参数到多种计算机视觉应用。这些应用范围包括消除镜头畸变的影响,
测量平面物体,或者从多个摄像头重建三维场景。
单摄像机标定工作流程
遵循这个工作流使用这个 APP 来标定你的相机的内外参数:
1. 准备好图片,相机,和标定板。
2. 加载图片。
3. 校准相机。
4. 评估校准精度。
5. 调整参数来提高精确度(如果需要)。
6. 输出参数对象。
在某些情况下默认值工作刚刚好,你不需要在输出参数之前做进行任何改进。如
果你需要做出改进,您可以使用 MATLAB 相机标定函数。这一系列函数,请参
阅 MATLAB Geometric Camera Calibration 模块。
打开相机标定 APP
MATLAB Toolstrip:打开应用程序选项卡,下拉到 图像处理和计算机视觉 ,点击
应用程序图示。
MATLAB 命令提示:输入 cameraCalibrator。
准备标定板,相机, 和图片
为达到最佳效果,使用 10 至 20 幅含有标定板的图像。标定 APP 至少需要三个图
像。 使用未压缩的或无损压缩格式如 PNG 图像。 标定板和相机的设置必须满
足一系列需求。为了提高精度遵循以下提示对于准备标定板,设置摄像头和捕捉
图像。
准备棋盘标定板
相机标定应用程序推荐使用一个棋盘标定板,一个棋盘标定板是一个方便的校准目标。如果你想使用一个
不同的标定板中提取关键点,可以直接使用相机标定 MATLAB 函数。请看几何相机校正 函数列表。
你可以打印(MATLAB 中生成)和使用提供的 棋盘状图案标定板。你使用的棋盘标定板不能是方形的。 一
边必须含有偶数的方块另一边必须包含奇数的方块。因此,该标定板包含两个黑色的角落一边和两个白人角
落另外一侧。 这个标准使应用程序以确定标定板的方向,标定程序认为长边是 x 轴。
准备棋盘标定板:
1) 棋盘打印输出粘贴到一个光滑的平面上。表面缺陷会影响标定的准确性。
2) 测量一个方格的大小。这对标定是必需的。方格的大小可以不同根据打印机设置。
3) 提高检测速度,设置标定板尽可能少的背景杂波。
相机的设置
适当调整你的相机,遵循以下规则:
保持焦点中的模式,但是不要使用自动对焦。
不改变图像之间的缩放设置。 否则焦距变化。
捕获图像
为达到最佳效果,使用至少 10 到 20 的包含标定板的图像。标定 APP 至少需要三个图像。 使用未压缩的图
像或图像无损压缩格式如 PNG。为了提高标定精度:
1. 捕获的图像模式大约距离等于距离你的相机感兴趣的对象。 例如,如果您计划从 2 米测量对象,保持你
的从相机模式大约 2 米。
2. 把棋盘角度小于 45 度相对于相机平面。
3. 不要修改图片。例如,没有裁剪他们。
4. 不使用自动对焦或缩放图像。
5. 在相对于相机不同位置捕获的图像 棋盘状图案。
6. 捕获足够的不同模式的图像,你已经覆盖尽可能多的图像帧。 在图像边缘镜头畸变会快速增加增加。
为了捕捉这些透镜畸变, 该标定板必须出现接近边缘的位置。
作为一般规则,棋盘标定板应该填补至少 20%的捕获的图像。例如, 前面的图片拍摄的棋盘方块的大小为
108 毫米。
添加图片
开始校准,必须添加图片。您可以添加保存好的图像从一个文件夹或直接从相机
添加图片。程序自动分析了图像,以确保它们满足标定的要求然后检测角点。
从文件夹添加图片
点击添加图片按钮,并选择 从文件夹。你可以从多个档夹添加图片,点击添加图
片为每个文件夹。
获得在线图片
为了标定必须添加图片。 你可以从一个网络摄像头使用 MATLAB 摄像头的支
持在线获得图像。 你必须 获得 MATLAB 支持 USB 摄像头安装驱动。参
看 Install the Webcam Support Package 的信息。
1. 获得在线图片,单击 添加图片 箭头 并选择 从相机 。
2. 图像捕捉 选项卡打开。如果你只有一个摄像头连接到系统,它被默认选中,
在线预览窗口打开。 如果你有多个摄像头连接,想使用一个特定的,选择
的相机 相机 列表。
3. 你可以设置相机控制的属性。 单击 相机属性 打开你的相机的属性的列表。
这个列表显示你的设备。
可以使用滑块或下拉框改变任何可用的属性设置。当你改变设置时预览窗口
动态更新。当你完成设定属性,单击弹出对话框将属性列表清除。
4. 输入一个获得图像档的位置 保存 位置 字段输入档夹的路径或者使用 的 浏
览 按钮。你必须拥有写入位置的读写权限。
5. 设置您的捕获参数。
在 捕捉间隔 字段中,使用文本框或滑块设置图像捕获之间的秒数。 默认值是
5 秒,最小是 1 秒,最大是 60 秒。
在 图像捕捉的数量 领域, 使用文本框或滑块设置图像捕捉的数量,默认设置
是 20 图片,最低是 2 图片,最大 100 张图像。
在默认配置中,共有 20 个图像捕获, 每 5 秒。
6. 把预览窗口锁定在程序的中心是很有益的。
7. 预览 窗口显示的在线图片是 RGB 图像流数据。当你调整完所有设备属性和
捕捉设置后,使用 预览 窗口捕捉图像。
8. 单击 捕获 按钮。捕获的数字图像的缩略图和快照出现在 数据浏览器 面板。
他们自动捕获命名为. png 文件。
您可以随意停止捕获,点击停止捕获 。
当你捕获图像数量到达指定值后,会让你输入单个方格的大小,输入后点
击 OK 。
然后计算并显示检测结果。
9. 点击 OK 显示 检测结果 对话框。
10. 当你已经完成了捕获在线图片,你可以单击 关闭图像捕获 关闭 图像捕获 选
项卡并返回到 校准 选项卡。
分析图像
你选择图片后,在棋盘方格大小对话框中,输入的长度。
程序试图检测添加的图片中的每一个棋盘。分析图像窗口出现时出现一个进度条,
表明检测进度。
如果有任何图像不合适,检测结果窗口就会显示出来,其中包含检测信息。结果
显示有多少总图像得到处理,有多少被接受,拒绝或跳过了。
想查看了被拒绝的图片,点击 查看图片。它还拒绝整个棋盘不能被检测到的图
像。被拒绝的可能的原因可能是是一个模糊的图像或标定板放在了一个极端的角
度。图像越大,方格越多,检测需要更长的时间。
查看图像和探测点
数据浏览器窗格中显示一个图像 id 列表。这些图像包含一个检测标定板。要查
看图像,在 数据浏览器 窗格选中它。
图像窗格显示棋盘图像,用绿色圆圈表示检测到角点。你可以通过缩放验证的检
测到的角点在视图选项卡中。黄色的正方形表示(0,0)的原点。棋盘的 X 和 Y 箭
头表示坐标轴方向。
标定
一旦你满意拍摄的图片,点击标定。默认的校准设置假设使用一组相机参数数量
最少的模型。首先使用默认设置运行标定。在评估结果后,你可以尝试通过调整
设置和添加或删除图片提高标定精度,然后再标定一次。
标定算法
校准算法假定针孔相机模型:
xw
y
z
ZYX
1
R
t
K
( X, Y, Z): 世界坐标的点
( x, y):形象 对应的像点坐标的像素
w:任意齐次坐标 比例因子
K:相机内在矩阵,定义 为:
fx
s
cx
0
fy
cy
0
0
1