机器人--相机

教程

畸变和校正

单目和双目标定

单双,rgb-d原理

单目相机

只有一个摄像头的相机。

原理

小孔成像。

缺点

单目相机无法测量物体点的深度信。

因为物体的Z轴坐标系无法测量。

双目相机

有两个摄像头的相机。

用两个单目相机组成的双目相机就可以测量深度信息,有些地方也把双目相机叫深度相机。

RGB-D相机

RGB-D相机一般有3个镜头:中间的镜头是普通的摄像头,采集彩色图像;另外两个镜头分别用来发射红外光和接收红外光。

RGB-D相机也利用和激光一样得到方法测距:

三角测距和TOF。

相机内参

相机内参通常用一个3×3的矩阵 K表示:

2,主点:定义了相机光轴(Optical Axis)与成像平面(Image Plane)的交点在图像像素坐标系中的位置。

3,倾斜系数(Skew Coefficient)

  • s:描述图像坐标系中x轴和y轴的不垂直程度(现代相机通常为0)。

-- 相机内参就是求解焦距和主点。

焦距

链接

链接

决定了相机的视角范围和成像大小。

  • 凸透镜:焦距为正,光线汇聚。

  • 凹透镜:焦距为负,光线发散。

焦距的含义和作用:

物理焦距:

镜头的光学中心感光元件之间的距离,用f表示。

像素焦距:

相机内参矩阵中的 fx​ 和 fy​ 是将物理焦距转换到像素坐标系的产物,可能不同。

主点

理想相机模型

传感器完全对准镜头,也就是像素坐标系原点完全对准相机坐标系(镜头中心坐标系)。

真实相机
由于制造误差(如传感器安装偏移、镜头与传感器未严格对齐),光轴可能不会精确穿过图像中心,因此主点 (cx,cy)会略微偏离理论中心。

内参成像模型

(x,y,z)是物体本身的一个点p相对于相机坐标系的位置。

K就是相机内参。

相机外参

在内参模型中,世界环境中的物体点P给的都是点P相对于相机坐标系下的坐标值:

实际情况下,世界环境中的物体点P给出的是点P相对于世界坐标系下的坐标值:

所以为了使用内参成像模型的公式,就需要将点P在世界坐标系下的位姿p^{w}转为点P在相机坐标系下的位姿

相机外参:

相机外参本质上就是一个变换矩阵,用于将世界坐标系中的3D点转换到相机坐标系

(关于变换矩阵以及坐标系变换--链接)

外参成像模型:

旋转矩阵R:

_{w}^{c}\textrm{R},我个人理解是世界坐标系到相机坐标系的旋转矩阵。

就是求解的是相机坐标系下的坐标。

T:_{w}^{c}\textrm{T}

我个人理解是世界坐标系到相机坐标系的变换矩阵。

T就是相机外参。

-- 相机外参就是世界坐标系到相机坐标系的变换矩阵。

成像畸变

径向畸变

  • 桶形畸变(Barrel Distortion):图像边缘向外膨胀,中心收缩(常见于广角镜头)。

  • 枕形畸变(Pincushion Distortion):图像边缘向内收缩,中心膨胀(常见于长焦镜头)。

原因:

光线穿过镜头时,边缘的光线比中心的光线折射更强烈(桶形畸变)或更弱(枕形畸变)。

桶形径向畸变会导致像素点在像素坐标系上的位姿(x,y)向中心靠拢。

需要通过校正,扩散像素点坐标。

枕形径向畸变会导致像素点在像素坐标系上的位姿(x,y)扩散。

校正

  • 点:即像素点,即像素坐标。

  • 图像中心(Principal Point)
    光轴与成像平面的交点,坐标为 (cx,cy)(cx​,cy​)(单位:像素),由相机内参定义。

切向畸变

相机镜头和图像传感器平面由于安装误差导致不平行,因此引入了切向畸变。

校正

径向畸变和切向畸变融合校正

相机标定

单目相机标定

目的:相机标定就是进行相机内参和畸变进行标定,利用标定得到的内参K和畸变系数k_{1},k_{2},k_{3},p_{1},p_{2}对原始图像进行修正。

一般相机出厂时就自带相机内参参数。

双目相机的标定

与单目标定不同的是,双目相机除了标定相机内参外,还要标定相机外参。

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

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

相关文章

Go 语言入门:(一) 环境安装

一、前言 这里不同于其他人的 Go 语言入门,环境安装我向来注重配置,比如依赖包、缓存的默认目录。因为前期不弄好,后面要整理又影响这影响那的,所以就干脆写成文章,方便后期捡起。 二、安装 1. 安装包 https://go.…

笔试专题(十二)

文章目录 主持人调度题解代码 小红的ABC题解代码 不相邻取数题解代码 空调遥控题解代码 主持人调度 题目链接 题解 1. 排序 2. 先按左端点的大小进行排序,保证时间是连续的,如果后一个点的左端点大于等于前一个点的右端点就是和法的,否则…

Ansible 守护 Windows 安全(Ansible Safeguards Windows Security)

Ansible 守护 Windows 安全:自动化基线检查与加固 在当今网络威胁日益严峻的形势下,保障 Windows 系统安全至关重要。Ansible 作为一款强大的自动化运维工具,可通过自动化脚本实现 Windows 安全基线检查和加固,大幅提升运维效率并…

深度解析 MyBatis`@TableField(typeHandler = JacksonTypeHandler.class)`:优雅处理复杂数据存储

一、引言:当Java对象遇见数据库 在现代应用开发中,我们经常面临一个关键问题:如何将复杂的Java对象(如Map、List或自定义POJO)优雅地存储到关系型数据库中?传统解决方案需要开发者手动进行序列化和反序列化…

【无标题】四色定理研究团队的构建与实施路径——跨学科建模、编程与理论拓展的全流程方案

### **四色定理研究团队的构建与实施路径** **——跨学科建模、编程与理论拓展的全流程方案** --- #### **一、团队构建与核心分工** ##### **1.1 核心角色与技能需求** | **角色** | **职责** | **技能要求** …

SQLMesh增量模型实战指南:时间范围分区

引言 在数据工程领域,处理大规模数据集和高频率数据更新是一项挑战。SQLMesh作为一款强大的数据编排工具,提供了增量模型功能,帮助数据工程师高效地管理和更新数据。本文将详细介绍如何使用SQLMesh创建和管理基于时间范围的增量模型&#xf…

TCP vs UDP:核心区别、握手过程与应用场景(附对比图)

🌐 引言 在网络通信中,TCP(传输控制协议)和UDP(用户数据报协议)是两大核心传输层协议。它们各有优劣,适用于不同场景。本文将用图文对比实战示例,帮你彻底理解两者的区别&#xff0…

STM32F103C8T6信息

STM32F103C8T6 完整参数列表 一、核心参数 内核架构‌ ARM Cortex-M3 32位RISC处理器 最大主频:72 MHz(基于APB总线时钟) 运算性能:1.25 DMIPS/MHz(Dhrystone 2.1基准) 总线与存储‌ 总线宽度&#xff…

WPF-遵循MVVM框架创建图表的显示【保姆级】

文章速览 1、技术栈实现步骤1、创建WPF工程项目2、引入框架 Caliburn.Micro、数据可视化库ScottPlot.WPF3、创建文件夹,并创建相应的View & ViewModel4、创建启动类5、将启动类设置为启动项6、编写View7、编写VM8、将VM和View中的图表进行绑定9、备注 示例效果 …

kafka理论学习汇总

基础知识 基本简介 Kafka 是一个分布式流式处理平台,是一种分布式的,基于发布/订阅的消息系统。 Kafka特点: 1. 同时为发布和订阅提供高吞吐量 Kafka 的设计目标是以时间复杂度为 O(1) 的方式提供消息持久化能力,即使对 TB 级以…

【亚马逊云】AWS Wavelength 从理论讲解到实验演练

🪪 本文作者:许业宝 ✍️ 作者信息: 🌞 VSTECS 云解决方案架构师 | AWS Ambassador | 🪪 AWS Community Builder | 亚马逊云科技技能云博主 ⭐ 已获六项 AWS 认证 | CKA、CKS认证 | …

ORACLE DATAGUARD遇到GAP增量恢复方式修复RAC环境备机的实践

ORACLE DATAGUARD技术是一个常用的数据保护机制,在DATAGUARD运行过程中,遇到异常导致备机不同步,而主库的归档日志也被清理,此时出现GAP,无法同步;就需要人工处理;对于小型数据库重新全量同步数…

Java24 抗量子加密:后量子时代的安全基石

一、量子计算威胁与 Java 的应对 随着量子计算机的快速发展,传统加密算法面临前所未有的挑战。Shor 算法可在多项式时间内破解 RSA、ECC 等公钥加密体系,而 Grover 算法能将对称加密的暴力破解效率提升至平方根级别。据 NIST 预测,具备实用价…

day005

文章目录 1. Linux系统核心文件1.1 查看系统版本信息1.1.1 /etc/os-release1.1.2 hostnamectl 1.2 查看主机名并修改1.2.1 hostname1.2.2 cat /etc/hostname1.2.3 hostnamectl 1.3 查看Linux内核版本1.3.1 uname -r1.3.2 hostnamectl 1.4 查看网卡信息并修改1.4.1 nmtui 网络管…

常用财务分析指标列表

财务分析指标是企业财务管理和决策的重要工具,不同需求人群在各自的场景中运用这些指标来做出决策。企业管理者需要通过财务分析指标来评估企业经营状况、制定战略和决策;投资者利用这些指标来评估投资价值和风险;债权人通过财务分析指标来评…

删除非今天日期文件夹--批处理脚本

echo off setlocal enabledelayedexpansion REM ----- 配置部分 ----- set “target_dirK:\360downloads\Software” set “log_file%temp%\delete_folders.log” REM ----- 管理员权限检查 ----- NET FILE >NUL 2>&1 || ( echo 需要以管理员权限运行! …

QT创建软件登录界面(14)

文章目录 一、本章说明二、登录界面设计2.1 添加登录窗口2.2 设置登录窗口布局2.3 主函数中创建登录窗口对象2.4 登录窗口头文件与c文件2.5 源文件添加三、注意四、源码项目文件一、本章说明 注:本节为【基于STM的环境监测系统(节点+云服务器存储+QT界面设计)】项目第14篇文…

小天互连即时通讯音视频功能

小天互连即时通讯的音视频功能是核心功能及优势之一,小天互连即时通讯采用先进的音视频编解码技术,即使在网络环境不好的情况下,也能智能优化保证会议稳定进行。因此可以让远程开会也变得和面对面交流一样的便捷,极大地提升了沟通…

【LInux网络】数据链路层 - 深度理解以太网和APR协议

📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…

【零基础入门】ASP.NET Core快速搭建第一个Web应用

一、为什么选择ASP.NET Core? 跨平台支持:可在Windows/macOS/Linux系统运行 高性能:比传统ASP.NET框架快10倍以上 开源生态:活跃的开发者社区和丰富的NuGet包 云原生支持:完美适配Docker和Kubernetes部署 二、开发…