MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。

MATLAB是matrix & laboratory两个词的组合,意为矩阵工厂(矩阵实验室),软件主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言的编辑模式。

相机标定的原理

相机标定(Camera calibration)是从世界坐标系换到图像坐标系的过程,也就是求最终的投影矩阵 P的过程。在传统的相机模型中共有4种坐标系,标定的过程分为两个部分:

第一步:从世界坐标系转换为相机坐标系,这一步是三维点到三维点的转换,包括R,t(相机外参)等参数;
第二步:从相机坐标系转为图像坐标系,这一步是三维点到二维点的转换,包括K(相机内参)等参数;

由上图可知:相机内参 × 相机外参 × 世界坐标系 = Z c × 像素坐标系

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

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

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

相机标定

我使用的是大华工业相机,用待标定的相机在大华的SDK中拍20张左右的棋盘格照片,,存放到一个文件夹里。

1.打开MATLAB,在APP中选择CameraCalibrator

 2.点击添加图片,把拍好的照片导入

这里的25表示的棋盘格中一个格子的大小是25x25,这个要根据你的棋盘格每个格子的大小自己进行修改。

3.选择三阶切向畸变和斜切:

 

4.仔细检查左边添加的每一张图片,去除坐标轴X,Y轴相反或坐标原点选错的图片。

然后点击绿色的三角形,进行相机标定

平均重投影误差要在0.5以下

看柱形图,如果都在0.5以上,那这些图片用不了,重新拍照。

如果有几个高于0.5,选中高于0.5的柱形,右键把图片移除

右上角是重建平均误差,只要平均误差小于0.5,就可以认为这是相机标定的结果是可靠的

筛选完后,点击绿色的 √ 子

确定,然后最小化窗口

回到matlab主页。

依次输入下面的代码,然后回车

format long
cameraParams.IntrinsicMatrix
cameraParams.RadialDistortion
cameraParams.TangentialDistortion

可以得到最后的结果:

内参乘以1000倍,就是最终结果

1499.944198548123(fx)                      0                                                       0
  0.003984900273769                 1510.801047592743  (fy)                                  0
591.943797568310 (u0)             442.971672298418  (v0)                                 0.00100000000

-0.167963518845769 (k1)             0.484082008125675 (k2)               -1.014155784038944 (k3)

-0.0044329296680252 (p1)              0.00165.770173733 (p2)

经验:

1.相机参数:曝光8000,增益2.0,亮度默认50,自动白平衡为连续,缩放为100%(点击1:1)
2.标定环境不能太暗,也不能太亮。暗的话调亮度为60或70,不能调太高。
3.标定距离不能太远,2米之内。
4.照片总数为25张左右,最多只能删掉10张。

5.如果环境太暗,相机标定时可以用灯光照射标定板,使角点清晰可见

标定时相机要放平,棋盘格的角点要清晰可见,晚上标定的话用灯光照射棋盘格

首先超近距离拍3张,中,中左,中右。后退一点,再拍3张,中,中左,中右。再后退一点,拍9张,中,中左,中右,上中,上左,上右,下中,下左,下右。在后退一点,标定板微侧着来拍4张,都在中间拍,中侧,斜侧,左右侧。再往前一点侧着拍6张,标定板以不同的角度拍,标定板侧的角度不能过大。

5.误差要在0.5以下,超出0.5的就删,最多只能删掉10张,不行就重来。要是删掉几张后误差突然变大,退出标定,用这些照片重新标,只用小于0.5以下这种情况的。

6.看误差,误差最高的图片在哪个位置,下次拍照就减少那个位置,但每个方向必须要有一张图片

2.2 在Matlab中进行相机标定相关推荐

  1. matlab单目相机标定

    文章目录 1.标定图片 2.标定 3.获取标定结果 使用matlab进行相机参数标定非常方便,相机畸变模型请参考另一篇文章相机内参与畸变模型,单目相机标定的结果就是得到相机内参与畸变系数. 1.标定图 ...

  2. MatLab的双目相机标定和orbslam双目参数匹配

    本文承接ROS调用USB双目摄像头模组 目录 相机标定 导出为YAML文件(也可以手动粘贴) 生成可用于ORB-SLAM2的yaml文件 生成可用于ORB-SLAM3的yaml文件 2022.5.6补 ...

  3. 张正友立体魔方_双目立体视觉中的相机标定与机器人位置标定

    在基于双目立体视觉的工业机器人抓取系统中涉及三个坐标系:世界坐标系(现实世界中的坐标位置).机器人坐标系(以机器人基座标 标识的坐标位置)和 相机坐标系(以双目相机中某相机光心位置为原点,光轴作为参考 ...

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

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

  5. 基于Matlab的双目相机标定

    第一步,打开matlab 输入stereoCameraCalibrator ,进入工具箱 第二步:点击add images 第三步:添加图片路径,并且修改尺寸(根据格子边长) 工具箱会弹窗告诉你一共识 ...

  6. 相机标定 matlab opencv ROS三种方法标定步骤(1)

    一 . 理解摄像机模型,网上有很多讲解的十分详细,在这里我只是记录我的整合出来的资料和我的部分理解 计算机视觉领域中常见的三个坐标系:图像坐标系,相机坐标系,世界坐标系,实际上就是要用矩阵来表 示各个 ...

  7. Matlab相机标定工具箱和标定结果评价

    用来做相机标定的工具很多,不过MATLAB中的相机标定工具箱使用起来相当舒服,概括起来:简单准确高效,下面我说一下单个相机和双目相机标定的流程和标定结果怎么判断好坏: 1. 单个相机标定 第一步:打开 ...

  8. A Flexible New Technique for Camera Calibration----张正友相机标定经典原文中文翻译

    做相机校正时用到了张正友相机标定的方法.了解到Opencv和Matlab中的相机标定都是用的张正友相机标定方法,很经典的方法,但是我在网上竟然没有找到它的中文翻译文章.我回头仔细看了张正友相机标定的英 ...

  9. matlab 工业相机 曝光时间_实战 | 相机标定

    知乎的公式格式有点问题,请看原文链接: 实战 | 相机标定​mp.weixin.qq.com 什么是相机标定?我们为什么需要相机标定? 相机标定就是确定相机内参和外参的过程,其结果精度会直接影响视觉系 ...

最新文章

  1. 光纤交换机如何划分zone
  2. oracle查看列数据类型
  3. struct2 开发环境搭建 问题
  4. sort函数——利用函数实现快速排序c++
  5. Linux实验五:Linux环境下的C语言编程
  6. 基本数据类型的分类 0125
  7. linux 中常用安装配置
  8. js 把对象按照属性名的字母顺序进行排列
  9. (转)淘淘商城系列——dubbo监控中心
  10. python3 + flask + sqlalchemy +orm(3):多对多关系
  11. 软件工程 第五章 详细设计
  12. 安装matlab时常用模块,matlab 安装哪些模块
  13. 机器学习数据不平衡问题及其解决方法
  14. ADMM 大规模变量优化
  15. Sopcast软件中凤凰卫视频道列表代码
  16. SM干货篇:你应该具备的提问技巧!
  17. 【Idea】Process finished with exit code 0 是什么意思?
  18. Vuex Actions使用
  19. 小D的一串数字 (数位DP做法)
  20. SSM全注解开发的网上商城系统

热门文章

  1. CXL.cache 协议详解
  2. 最新最全论文合集——蒙特卡洛树搜索
  3. android web连接问题,Android WebView或手机浏览器打开连接问题解决办法总结
  4. 【计算机组成与设计学习笔记】(二)
  5. peewee 实现 有则更新,无则插入.
  6. 汽车成本调查:外方靠技术和采购攫取巨利
  7. 第一章 计算机基础知识 试题,第一章计算机基础知识试题.doc
  8. Java 编写航班查询系统 窗体程序 完整源码
  9. 【Java继承】编程练习:水果的信息描述
  10. 死亡爱丽丝服务器维护,《死亡爱丽丝》上线玩家太多 游戏无限期停服维护