【Matlab】相机标定(计算机视觉工具箱)

图像处理和计算机视觉是Matlab的一个主要应用领域,这部分包括4个工具箱——图像处理、计算机视觉、雷达、医学图像。由于视觉的东西容易呈现,所以先从计算机视觉工具箱学起。

官方文档对计算机视觉工具箱的介绍如下:设计和测试计算机视觉、3D 视觉和视频处理系统,提供了算法、函数和应用可用于特征检测、对象识别、语义分割和相机的标定校准等,此外还有视觉和点云 SLAM、立体视觉、点云处理和运动估计等,不过关于雷达点云的相关处理目前有独立出来一个雷达工具箱,后面再介绍。

【Matlab】相机标定(计算机视觉工具箱)_第1张图片

文章目录

    • 相机标定
    • 使用校准相机测量平面物体

相机标定

相机标定用于估计图像或摄像机的镜头和图像传感器的参数。通过标定校准,可以处理镜头失真、深度估计、物体测量和3D场景重建等。

【Matlab】相机标定(计算机视觉工具箱)_第2张图片

相机参数包括相机内参、相机外参和畸变系数。通过相机的标定校准,可以:

  1. 绘制相机的相对位置(坐标系转换)和校准模式。
  2. 计算重新投影误差。
  3. 计算参数估计误差。

可以通过MATLAB应用Camera Calibrator来自动校准相机,适用于针孔相机和鱼眼相机。

通过APP打开或直接在命令行输入cameraCalibrator打开相机标定程序:

【Matlab】相机标定(计算机视觉工具箱)_第3张图片

标定之前,先打印或买一张棋盘格纸,可以从这个网站生成。用A4纸打印出来后,测量一个格子的实际长度是20mm。

【Matlab】相机标定(计算机视觉工具箱)_第4张图片

进入相机标定程序,可以提前拍好棋盘格照片,也可以在线拍,将棋盘格纸分别在远处和近处,上下左右中几个位置短暂停留。

【Matlab】相机标定(计算机视觉工具箱)_第5张图片

设置好时间间隔和拍摄数量后,就可以进行照片的自动拍摄:

然后会提示输入棋盘格边长:

【Matlab】相机标定(计算机视觉工具箱)_第6张图片

然后关闭采集器,点击Calibrate开始标定:

在这里插入图片描述
标定完成后,效果如下:

点击 Export Camera Parameters,可在matlab工作空间里可以看到相机参数:

在这里插入图片描述
在这里插入图片描述

命令行输入cameraParams.IntrinsicMatrix可以查看相机内参:

【Matlab】相机标定(计算机视觉工具箱)_第7张图片

对应工作区中的参数:

【Matlab】相机标定(计算机视觉工具箱)_第8张图片

同理可以查看其他参数:

【Matlab】相机标定(计算机视觉工具箱)_第9张图片

标定完后,可以评估单相机校准的准确性并进行改进,
1.检查重投影误差
重投影误差是检测到的点与相应的重投影点之间的距离(以像素为单位),以条形图的形式显示。一般情况下,小于一个像素的平均重投影误差是可以接受的,可以选择条形图以选择图像,删除误差大的图像。

2.检查外在参数可视化
3-D 外在参数图提供了以摄像机为中心的棋盘格视图和以棋盘格为中心的摄像机视图。如果相机在捕获图像时处于静止状态,则以相机为中心的视图非常有用。如果棋盘格是静止的,则以棋盘格为中心的视图有用。可以单击并拖动图形以旋转它。单击棋盘(或相机)以将其选中。可视化效果中突出显示的数据与列表中的所选图像相对应。检查棋盘格和相机的相对位置,以确定它们是否符合您的预期。例如,相机后面出现的棋盘格表示标定错误。

【Matlab】相机标定(计算机视觉工具箱)_第10张图片

3.检查未失真的图像
要查看消除镜头失真的效果,点击视图上的显示未失真,如果校准准确,则图像预览中扭曲的线条将变为直线。

在这里插入图片描述

要改进标定结果,可以删除高误差图像、添加更多图像或修改标定程序设置,直到得到满意的结果。

改进后的结果,可以再次输出到工作空间中。

使用校准相机测量平面物体

。。。

以上。

你可能感兴趣的:(Python/MATLAB开发,matlab,计算机视觉,图像处理)