双目相机标定流程(MATLAB)

一:经典标定方法

1.1OPENCV

1.2ROS

ROS进行双目视觉标定可以得到左右两个相机的相机矩阵畸变系数,如果是单目标定,用ROS会非常方便。

 3.MATLAB标定(双目标定)

MATLAB用来双目标定会非常方便,主要是为了得到两个相机之间的旋转矩阵R和平移矩阵T。

前提是已经已经用两个相机拍摄好多组照片。

二:采用matlab双目标定流程

2.1选择matlab中的双目标定工具箱

 2.2导入图片并设置棋盘格尺寸

导入左右相机拍摄照片的文件夹,同时设置棋盘格子宽度,点击确定以后,matlab会自动剔除一些质量不高的照片。因此拍摄时照片尽量多一些,图片要求和单目标定时一致,数量我自己的话是建议200张会比较好一些,然后没有那么高的标定需求的话,20张应该够了。涉及到X,Y轴(左右,上下),然后还有SIZE(远近),还有翻转。图片拍摄的角度越多,标定也就越精准。

 

2.3设置参数

参数解释

2.3.1Radial Distortion(径向畸变)

2 Coefficients选项的官方含义:
Use fourth degree polynomial to estimate the radial distortion of a lens.
使用四次多项式来估计透镜的径向畸变。

3 Coefficients选项的官方含义:
This setting is recommended only for wide field of view camera.
Use sixth degree polynomial to estimate the radial distortion of a lens.
此设置仅适用于大视场相机。
使用六次多项式来估计透镜的径向畸变。

综上所述:
对于一般的相机选择2 Coefficients选项即可,对于大视场相机则选择3 Coefficients选项。

2.3.2Compute

Compute包含Skew和Tangential Distortion两个选项

2.3.2.1SKew

Assume that X-axis and Y-axis are not perpendicular. This means that the image pixels are not rectangular. Most modern cameras do not exhibit this issue.
假设X轴和Y轴不垂直。这意味着图像像素不是矩形的。大多数现代相机都没有这个问题。
所以,Skew选项一般不需要选择。

2.3.2.2Tangential Distortion
Tangential distortion occurs when the lens’ principal axis is not perpendicular to the camera sensor.
当镜头的主轴与相机传感器不垂直时,会发生切向失真。

 

2.3.3设置单目标定时的参数(可选) 

如果希望将多目标定时的参数设置和含义与单目标定时保持一致,可以使用与单目标定时相同的参数设置和方法。可以输入之前单目标定时得到的内参矩阵(可选),然后点击"Calibrate"按钮进行计算。这样做可以确保在多目标定时中使用一致的参数和方法来进行校准。

  

左下方的直方图为左右图像的标定误差,点击误差较大的直方图,可以直接在左边的图像对中找到对应的图像,右键选择“Remove and Recalibrate”,可以重复上述步骤,直到认为误差满足标定需求为止。

 2.4导出参数

 2.5读取参数

TranslationOfCamera2:相机2相对于相机1的偏移矩阵;

RotationOfCamera2:相机2相对于相机1的旋转矩阵;

CameraParameters1和CameraParameters2为左右摄像头的单独标定参数

2.5.1两个摄像头的平移和旋转参数

平移参数可直接使用;但旋转参数需进行转置才能使用。

2.5.2摄像机内参矩阵

CameraParameters1与CameraParameters2中包含如下文件:

特别注意:IntrinsicMatrix存放的是摄像头的内参,只与摄像机的内部结构有关,需要先转置再使用。 

2.5.3畸变参数

RadialDistortion和TangentialDistortion中存放的是畸变参数, RadialDistortion为径向畸变,摄像头由于光学透镜的特性使得成像存在着径向畸变,可由K1,K2,K3确定。TangentialDistortion为切向畸变,由于装配方面的误差,传感器与光学镜头之间并非完全平行,因此成像存在切向畸变,可由两个参数P1,P2确定。

不过在使用时,需要注意参数的排放顺序,即K1K2P1P2K3。切记不可弄错,否则后续的立体匹配会出现很大的偏差。

参考资料:双目视觉标定MATLAB_matlab双目标定-CSDN博客

双目立体视觉:四(双目标定matlab,图像校正,图像匹配,计算视差,disparity详解,)_rectifystereoimages-CSDN博客

matlab相机标定Options选项解析_radial distortion 3 cofficient-CSDN博客Matlab2015 双目相机自动标定 (mamicode.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/688552.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1.分布式-理论

目录 一、什么是分布式系统 二、CAP理论 1.一致性Consisency 2.可用性(Availability) 3.分区容错性(Partition tolrance) 三、BASE理论 1.Basically Available(基本可用) 2.Soft state(软状态) 3.Eventually consistent(最终一致性&a…

Linux虚拟主机如何设置错误页面

设置一个定制的404页面对网站有多种好处。首先,它能够提升用户体验,当用户访问错误的网址或不存在的页面时,定制的404页面能够友好地提醒用户并给予导航或提示。其次,404页面可以帮助留住访问者,让他们在意外情况下不至…

国产版Sora到来!视频大模型更上一层楼

大模型的快节奏发展,让了解最新技术动态、积极主动学习成为每一位从业者的必修课。InfoQ 研究中心期望通过每周更新大模型行业最新动态,为广大读者提供全面的行业回顾和要点分析。现在,让我们回顾过去一周的大模型重大事件吧。 一、重点发现…

解决ubuntu无法上网问题

发现是网络配置成了Manual手动模式,现在都改成自动分配DHCP模式 打开后,尝试上网还是不行,ifconfig查看ip地址还是老地址,怀疑更改没生效,于是重启试试。 重启后,ip地址变了,可以打开网页了 …

SQL Server 存储过程中的字符串本身包含单引号的用法

文章目录 引言I 存储过程中的字符串本身包含单引号的用法1.1 问题1.2解决方法引言 使用场景: 字符串类型字段的值比较 I 存储过程中的字符串本身包含单引号的用法 在SQL Server中,单引号用于表示字符串常量。如果你的存储过程中的字符串本身包含单引号,你需要用两个连续的…

SpringCloud 2023.0.1

本文介绍如何使用 springboot3及cloud2023 进行微服务模块化开发 采用父-module 模块开发 父工程 demo-java pom.xml <!--配置 springboot的依赖的版本号, 方便 module 进行继承--><dependencyManagement><dependencies><!--增加 springboot的依赖--&g…

25_Scala集合Tuple

文章目录 tuple1.元组定义2.Tuple元素访问3.如果元素的len2&#xff0c;称之为键值对对象&#xff0c;也称之为对偶元组4.补充上节Map5.Map集合遍历6.集合之间相互转化 tuple 概念&#xff1a;scala语言采用特殊的方式将无关的数据作为一个整体&#xff0c;组合在一起’ 1.元…

3款超好用的智能AI写作神器,不容错过!

在当代写作领域&#xff0c;人工智能&#xff08;AI&#xff09;辅助的写作工具已显著地改变了创作过程&#xff0c;不仅优化了撰写效率还提高了内容质量。为了协助读者更好地了解并利用这些先进的工具&#xff0c;本文将详细评述3种卓越的AI驱动的写作辅助软件&#xff0c;每一…

车辆管理|基于SprinBoot+vue的4S店车辆管理系统(源码+数据库+文档)

4S店车辆管理系统 目录 基于SprinBootvue的4S店车辆管理系统 一、前言 二、系统设计 三、系统功能设计 系统实现 1管理员功能模块 2销售员功能模块 3维修员功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xf…

scikit-learn多因子线性回归预测房价

1.首先是单因子线性回归预测房价 import numpy as np import pandas as pd from matplotlib import pyplot as plt from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error, r2_score# 1.读取csa房屋数据 path D:/pythonDATA/us…

鸿蒙OpenHarmony开发板解析:【系统能力配置规则】

如何按需配置部件的系统能力 SysCap&#xff08;SystemCapability&#xff0c;系统能力&#xff09;是部件向开发者提供的接口的集合。 开发前请熟悉鸿蒙开发指导文档&#xff1a;gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 部件配置系统…

el-select选项框内容过长

利用popper-class实现选项框内容过长&#xff0c;截取显示功能&#xff1a; <el-select popper-class"popper-class" :popper-append-to-body"false" v-model"value" placeholder"请选择"><el-optionv-for"item in opt…