2.2 在Matlab中进行相机标定

这篇具有很好参考价值的文章主要介绍了2.2 在Matlab中进行相机标定。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

2.2 在Matlab中进行相机标定

下载: R2019b(64bit).rar_免费高速下载|百度网盘-分享无限制 (baidu.com)

提取码:yd9w 

相机标定的原理


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

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

2.2 在Matlab中进行相机标定

2.2 在Matlab中进行相机标定

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

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

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

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

相机标定 

 棋盘格下载网址:Calibration Checkerboard Collection | Mark Hedley Jones

Camera Calibration Pattern Generator – calib.io

 下载后直接用A4纸打印,当然如果你有钱去淘宝买标定板也行

拍照

拍照之前调好相机合适的光圈和焦距,一定要固定焦距,要是标定好后稍微改变一点焦距、畸变参数就没用了,又要重新标,所以拿黑胶布把焦距固定好,防止意外碰到或震动松动。

设置合适的相机参数,曝光,亮度.......

在不同的角度用相机拍照 棋盘格

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

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

2.2 在Matlab中进行相机标定

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

2.2 在Matlab中进行相机标定

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

2.2 在Matlab中进行相机标定

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

2.2 在Matlab中进行相机标定

 

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

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

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

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

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

2.2 在Matlab中进行相机标定

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

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

2.2 在Matlab中进行相机标定

确定,然后最小化窗口 

2.2 在Matlab中进行相机标定

回到matlab主页。

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

format long
cameraParams.IntrinsicMatrix	
cameraParams.RadialDistortion
cameraParams.TangentialDistortion

2.2 在Matlab中进行相机标定

2.2 在Matlab中进行相机标定

 可以得到最后的结果:

内参乘以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.看误差,误差最高的图片在哪个位置,下次拍照就减少那个位置,但每个方向必须要有一张图片
 文章来源地址https://www.toymoban.com/news/detail-430270.html

到了这里,关于2.2 在Matlab中进行相机标定的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于Matlab的双目相机标定

    第一步,打开matlab 输入stereoCameraCalibrator ,进入工具箱  第二步:点击add images 第三步:添加图片路径,并且修改尺寸(根据格子边长) 工具箱会弹窗告诉你一共识别到多少组照片,多少组可以用,多少组被工具箱拒绝了。 我这里一共20张图片,都可以  第四步:点击 运行完

    2024年02月04日
    浏览(44)
  • 单目相机的标定(matlab)

                     从世界坐标系变换到中心在相机光学中心的坐标系统,其变换参数称为相机的外部参数,也叫相机的位姿(位置和姿态)。从相机坐标系统变换到计算机图像坐标系统的变换参数称为相机内参,即相机的自身参数。         相机外参需要标定的参

    2024年02月08日
    浏览(51)
  • 【Matlab】相机标定(计算机视觉工具箱)

    图像处理和计算机视觉是Matlab的一个主要应用领域,这部分包括4个工具箱——图像处理、计算机视觉、雷达、医学图像。由于视觉的东西容易呈现,所以先从计算机视觉工具箱学起。 官方文档对计算机视觉工具箱的介绍如下:设计和测试计算机视觉、3D 视觉和视频处理系统

    2024年02月05日
    浏览(104)
  • Matlab相机标定方法及主要参数含义,坐标变换过程

    网上有很多关于matlab相机标定的资料,但找了很久没有相应的参数说明:怎样利用获得参数从世界坐标系变换到图像坐标系,所以这里为了记录一下,也方便新人理解。 首先由图像到参数的获取部分在网上有很多资料,也很容易,在这就不再赘述,我利用的标定板的格子大小

    2024年02月05日
    浏览(45)
  • Matlab相机标定——使用Single Camera Calibrator App

     什么是相机标定?​​​​​​​         Single Camera Calibrator App支持棋盘格、圆圈格和自定义检测器图案。有关这些图案的细节和包含可打印图案的PDF文件,请参见校准图案。 分享一个可以生成各种标定板的网站:https://calib.io/pages/camera-calibration-pattern-generator (1)本文

    2024年02月04日
    浏览(53)
  • 使用Matlab、Opencv、Ros三种方法完成相机标定

    1、相机标定的意义         在机器视觉领域,相机的标定是一个关键的环节,它决定了机器视觉系统能否有效的定位,能否有效的计算目标物。相机标定意义在于将现实世界中的三维物体与相机图像对应的二维物体映射起来,实际上就是透视投影。 2、相机标定原理   

    2024年04月13日
    浏览(63)
  • 机械臂手眼标定ZED相机——眼在手外python、matlab

    目录 1.眼在手外原理 2.附上眼在手外求得手眼矩阵的python代码 3.眼在手外标定步骤 1)打印棋盘格 2)得到hand数据 3)得到camera数据 4.运行python得到手眼矩阵   眼在手外所求的手眼矩阵是基坐标到相机的转换矩阵 其中:         hand为基坐标系下抓夹的位姿,一般从示教器

    2024年02月11日
    浏览(33)
  • 张正友相机标定(全流程,含畸变,matlab源代码解析)

    张正友标定的具体原理很多文章已经介绍,这里主要结合源代码对其中的基本原理及本人遇到的问题进行介绍。(仅介绍基本原理供本人复习,同时方便他人,如有问题,请及时指正勿喷) 相机标定,即获取其内参、外参、畸变系数(内参与外参及相机成像模型的解释可以参

    2024年02月04日
    浏览(49)
  • MATLAB - 激光雷达 - 相机联合标定(Lidar-Camera Calibration)

          激光雷达 - 相机标定建立了三维激光雷达点和二维相机数据之间的对应关系,从而将激光雷达和相机输出融合在一起。 激光雷达传感器和相机被广泛用于自动驾驶、机器人和导航等应用中的三维场景重建。激光雷达传感器捕捉环境的三维结构信息,而相机则捕捉色彩、

    2024年02月20日
    浏览(52)
  • MATLAB 相机标定中标定板角点像素坐标系到世界坐标系的转换

    matlab 做相机标定后,想将第一张(任意一张都行)标定板角点所对应的像素坐标转换到世界坐标系下,标定板角点的像素坐标真值与世界坐标真值都非常容易获得,但是我通过内外参矩阵将像素坐标转换到世界坐标有很大的误差,如下 像素坐标到世界坐标之间的转换可参考

    2024年02月10日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包