文章目录

  • 1、标定图片
  • 2、标定
  • 3、获取标定结果

使用matlab进行相机参数标定非常方便,相机畸变模型请参考另一篇文章相机内参与畸变模型,单目相机标定的结果就是得到相机内参与畸变系数。

1、标定图片

首先,需要使用待标定的相机获取标定板的图片,这里使用棋盘格作为标定板。采集标定板图片需要在相机各个方位进行拍摄,不要在同一个位置获取多张图片,标定板的大小根据相机视野而定,一般选择棋盘格图案占图片大小的2/3,棋盘格子宽高应为:奇数x偶数,比如5x6,7x8,而不要8x8这样设计棋盘格,棋盘格精度会直接影响标定结果,高精度场景需要购买高精度的棋盘格,自行打印的棋盘格一般精度较低,视使用需求而定。用于标定的图片如下图:

2、标定

打开Matlab,在APPS里找到Camera Calibrator应用,如下图:

点击Add Images选择From file添加棋盘格图片

选择棋盘格图片后,弹出下面对话框,填写棋盘格的格子物理尺寸,例如我使用的棋盘格格子边长为10mm.

加载图片完成后如下图,已经自动检测出棋盘格角点,角点检测失败的图片则未被加载进来,图中还显示出了棋盘格物理坐标系的原点和xy轴方向,z轴方向根据右手法则确定。在Radial Distortion处可选择畸变参数类型,点击Calibrate按钮进行标定。

标定完成如下图,在棋盘格图片中,绿色圆圈表示检测到的角点位置,红色+表示标定完后重投影的角点位置,右上角柱形图Reprojection Errors显示了当前图片每个角点的重投影误差,重投影点是标定完后棋盘格子角点的物理坐标系坐标点根据相机内参和外参重投影计算得到再图像坐标系下的坐标点,而重投影误差则是重投影坐标点和检测得到的角点图像坐标点之间的欧式距离。图中右下角视图显示每张棋盘格物理坐标系再相机坐标系下的位姿,即棋盘格对应的外参。点击Export Camera Parameters导出标定结果。

可选择Export estimation errors导出误差参数。

3、获取标定结果

导出标定结果后回到matlab主界面可查看相关参数信息

几个重要参数为:相机内参矩阵IntrinsicMatrix(这里内参矩阵形式表示为[fx,0,0;0,fy,0;cx,cy,1]),畸变参数RadialDistortion和TangentialDistorition(分别对应畸变模型那篇文章里介绍的径向畸变(k1,k2,k3)和切向畸变(p1,p2))



其他参数:
WorldPoints为每个图片每个角点的物理坐标系,此处列出了xy轴坐标,由于所有角点都在同一个平面上,所以z轴坐标值都为零。

TranslationVectors为每张图片对应的棋盘格物理坐标系到相机坐标系变换关系的平移向量,记为Tc,RotationMatrices为每张图片对应的棋盘格物理坐标系到相机坐标变换关系的旋转矩阵,记为Rc,则棋盘格物理坐标系上一点Pw(pwx;pwy;pwz)在相机坐标系下的坐标值为Pc(pcx;pcy;pcz),则 Pc = Pw*Rc + Tc。RotationVectors是RotationMatrices对应的旋转向量。

ReprojectrdPoints为角点的重投影点。ReprojectionErrors为重投影点的重投影误差。MeanReprojectionError为重投影误差的均值。

matlab单目相机标定相关推荐

  1. matlab单目相机标定步骤,matlab相机标定

    本文是一篇关于相机标定意义和原理的个人总结,包含了 OpenCV 和 Matlab 中常用的相机 标定函数的注解. 相机标定是机器视觉的基础, 标定结果的好坏直接决定了机器...... 图片数量一定程 ...

  2. 3.OpenCV可视化(Viz)——单目相机标定模拟

    单目相机标定模拟 基于OpenCV中的Viz模块,虚拟一个相机,设置相机的内参数.然后在相机视野下放置标定板,通过相机标定算法,最终再获取相机内参数. 当然最终相机标定还是存在误差,我猜测主要原因是标 ...

  3. 【计算机视觉】OpenCV实现单目相机标定

    文章目录 单目相机标定(基于Python OpenCV) 1.上期填坑 2.单目相机标定 2.1 数据采集 2.2 角点提取 2.3 参数求解 2.4 参数评估(重投影误差) 2.5 相机位姿(棋盘位 ...

  4. 一文图解单目相机标定算法

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 有一天,蟹老板找底下的员工川建国同学: 等蟹老板走后,然后转头问旁边的学霸李雷同学: 李雷同学整理了下 ...

  5. 单目相机标定(使用OpenCV)

    关于相机标定的理论知识和使用Matlab软件进行相机标定请看这篇博文:单目相机标定(使用Matlab) 这次因为项目原因需要给海康工业相机进行标定了,下载Matlab软件有些麻烦(主要是我电脑内存小. ...

  6. 基于OpenCV的单目相机标定与三维定位

    相机是产生图像数据的硬件,广泛应用于消费电子.汽车.安防等领域.围绕着相机衍生出一系列的研究与应用领域,包括传统的图像处理和基于深度学习的智能应用等.目前大火的自动驾驶中相机也是重要的硬件组成,如环视 ...

  7. 单目相机标定实现--张正友标定法

    文章目录 一:相机坐标系,像素平面坐标系,世界坐标系,归一化坐标系介绍 1:概述 公式 二:实现 1:整体流程 4:求出每张图像的单应性矩阵并用LMA优化 5:求解理想无畸变情况下的摄像机的内参数和外 ...

  8. 单目相机标定 分辨率1920X1080 利用libuvc

    单目相机标定 分辨率1920X1080 利用libuvc libuvc 安装 开始标定 之前一直使用 usb_cam 但是默认分辨率是 640X480,调节到1920X1080后运行出错,干脆用lib ...

  9. SLAM学习 | 单目相机标定(附代码实测可用)

    SLAM学习 | 单目相机标定(附代码实测可用) 1 针孔相机模型 2 张正友标定法 3 VS2013下配置openCV 4 标定过程与结果 5 经验总结与注意事项 概要: 这篇文章介绍如何解决做SL ...

最新文章

  1. (传送门)2/dev/null和/dev/null 21和21/dev/null
  2. 框架:@Bean注解
  3. 外部方法调用内部_私有属性和私有方法
  4. 基于多进程和基于多线程服务器的优缺点及nginx服务器的启动过程
  5. _D类、E类、F类冷藏车是什么意思?
  6. Calendar Game POJ - 1082(关于日历的博弈问题)
  7. 让Mysql支持Emoji表情,解决[Err] 1366 - Incorrect string value: '\xF0\xA3\x84\x83'
  8. linux添加变色龙引导,u盘启动盘制作win7变色龙引导工具
  9. Java保留2位小数 JS保留2位小数 Java截取2位小数 Math.round((1.0/3)*100)/100.0
  10. 研发质量管理工作经验总结(五)----关于流程建设的思考
  11. 鸡啄米:C++编程入门系列之目录和总结(再学习路标,大牛见解深刻,真正容易入门)
  12. iOS APP中嵌入网速监测功能
  13. 畅写Office加持公软件云协作特性,让企业办公效率飞起来
  14. java excel 边框颜色_poi生成excel整理(设置边框/字体/颜色/加粗/居中/)
  15. 【python基础】python中常用字符串函数详解
  16. 13-cmake语法-路径设置
  17. [盘点]现今热门的h5网游
  18. i 春秋CTF题目 百度杯 9月场 再见CMS Upload 复现
  19. mysql每隔俩小时、四小时、八小时进行数据统计
  20. 快递机器人为何刚刚在旧金山上路就被叫停了? | 精选

热门文章

  1. 较早版本OAI ENB启动问题解决
  2. Flutter Demo 简单的涂鸦应用
  3. 用于ip伪装身份的网络爬虫
  4. 如何进入docker 使用root用户的方式
  5. ArcEngine代码 数据导入
  6. Nginx 简介和安装
  7. html图片不能拖动,关于html5图片拖动的代码的问题?
  8. 速速收藏——程序员接私活的七大平台
  9. uniApp实现热更新
  10. Linux: 关于 SIGCHLD 的更多细节