【matlab下的双目内窥镜标定与深度测距-双目成像原理】

2024-04-13 19:12

本文主要是介绍【matlab下的双目内窥镜标定与深度测距-双目成像原理】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【matlab下的双目内窥镜标定与深度测距-双目成像原理】

这里是目录

  • 介绍
  • 坐标系关系
  • 相互关系推导
  • 三角测量

介绍

双目成像是一种利用两个摄像头或摄像头组成的系统同时捕捉场景信息的技术。它模拟了人类双眼视觉系统,通过两个视角获取的图像来计算深度信息,从而实现三维感知和场景重建。

坐标系关系

在双目成像方法中共存在四个坐标系:

世界坐标系:是一个三维空间中的坐标系,用来描述物体在真实世界中的位置和姿态。在计算机视觉和机器人领域中,世界坐标系通常被定义为一个固定的参考系,例如地面上的坐标系或者某个物体表面的坐标系。

相机坐标系:是以相机为中心的坐标系,用来描述物体相对于相机的位置和姿态。相机坐标系是一个相对坐标系,其原点通常位于相机的光学中心,坐标轴与相机的视觉轴(光轴)对齐。相机坐标系提供了连接世界坐标系和图像坐标系之间的桥梁。

图像坐标系:描述真实物体在相机焦距处成像的坐标系。图像坐标系的原点通常位于图像的左上角,x轴向右延伸,y轴向下延伸。图像坐标系中的点表示物体在图像上的投影位置,是实际成像过程中的数字表示。

像素坐标系:是图像坐标系的数字化版本,用来描述物体在照片上数字图像的位置。像素坐标系中的点是由图像中的像素点组成,每个像素点都有唯一的坐标位置,通常以整数表示。像素坐标系的单位是像素,是数字图像处理和计算机视觉中常用的坐标系统。

双目成像的目的即是,将建立像素坐标系中某一点到世界坐标系中的关系,通过像素坐标系的一点,得到与其对应世界坐标系相对于相机的深度距离。,显然像素坐标系是二维,世界坐标系是三维,需要向更高维度进行映射。

相互关系推导

世界坐标系到相机坐标系的转换:
旋转矩阵
R:描述世界坐标系到相机坐标系的旋转关系。
平移向量
t:描述世界坐标系到相机坐标系的平移关系
在这里插入图片描述

相机坐标系到图像坐标系的转换:
内参矩阵
K:包括焦距、主点坐标和畸变参数,描述相机坐标系到图像坐标系的投影关系。
坐标归一化矩阵
N:将相机坐标系中的三维坐标转换为图像坐标系中的二维坐标。

在这里插入图片描述

其中,f x​ 和 f y​ 是相机的水平和垂直焦距,c x​ 和 c y​ 是主点的水平和垂直坐标,z 是相机坐标系中的深度。

图像坐标系到像素坐标系的转换:
分辨率矩阵 M:描述图像坐标系中的单位长度与像素坐标系中的单位长度之间的关系。
在这里插入图片描述
其中,m x​ 和 m y​ 是图像的水平和垂直分辨率

相机中感光器件的每个像素物理尺寸为dx*dy,则图像坐标系中的坐标(x,y)与像素坐标系中的坐标(u,v)之间的关系可以表示为:
在这里插入图片描述

这个关系可以用矩阵形式表示为:
在这里插入图片描述

则像素坐标系到世界坐标系的映射关系:

在这里插入图片描述
如果加上在世界坐标系中的旋转矩阵R和平移向量T有:

在这里插入图片描述
完成转换

三角测量

利用已知的基线长度(两个摄像头之间的距离)和视差角度,可以使用三角测量法计算物体的距离
在这里插入图片描述

视差(Disparity):视差表示在两个摄像头之间看到同一物体时,该物体在图像中的位置差异。视差d与物体距离Z之间有以下关系:
在这里插入图片描述
其中,B是基线长度(两个摄像头之间的距离),f是焦距。

通过视差d和基线长度B可以计算出物体的深度Z:
在这里插入图片描述

这篇关于【matlab下的双目内窥镜标定与深度测距-双目成像原理】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/900979

相关文章

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

MySQL中的MVCC底层原理解读

《MySQL中的MVCC底层原理解读》本文详细介绍了MySQL中的多版本并发控制(MVCC)机制,包括版本链、ReadView以及在不同事务隔离级别下MVCC的工作原理,通过一个具体的示例演示了在可重... 目录简介ReadView版本链演示过程总结简介MVCC(Multi-Version Concurr

Go中sync.Once源码的深度讲解

《Go中sync.Once源码的深度讲解》sync.Once是Go语言标准库中的一个同步原语,用于确保某个操作只执行一次,本文将从源码出发为大家详细介绍一下sync.Once的具体使用,x希望对大家有... 目录概念简单示例源码解读总结概念sync.Once是Go语言标准库中的一个同步原语,用于确保某个操

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

五大特性引领创新! 深度操作系统 deepin 25 Preview预览版发布

《五大特性引领创新!深度操作系统deepin25Preview预览版发布》今日,深度操作系统正式推出deepin25Preview版本,该版本集成了五大核心特性:磐石系统、全新DDE、Tr... 深度操作系统今日发布了 deepin 25 Preview,新版本囊括五大特性:磐石系统、全新 DDE、Tree

Redis主从复制的原理分析

《Redis主从复制的原理分析》Redis主从复制通过将数据镜像到多个从节点,实现高可用性和扩展性,主从复制包括初次全量同步和增量同步两个阶段,为优化复制性能,可以采用AOF持久化、调整复制超时时间、... 目录Redis主从复制的原理主从复制概述配置主从复制数据同步过程复制一致性与延迟故障转移机制监控与维

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

Redis主从复制实现原理分析

《Redis主从复制实现原理分析》Redis主从复制通过Sync和CommandPropagate阶段实现数据同步,2.8版本后引入Psync指令,根据复制偏移量进行全量或部分同步,优化了数据传输效率... 目录Redis主DodMIK从复制实现原理实现原理Psync: 2.8版本后总结Redis主从复制实

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一