【matlab下的双目内窥镜标定与深度测距-双目标定内容】

2024-04-13 21:04

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

【matlab下的双目内窥镜标定与深度测距-双目标定内容】

在本片中主要讲述如何通过matlab标定双目内窥镜,以及标定结果参数的含义,和使用方法

一般来说标定相机由opencv标定和matlab 标定两种方法,但是opencv由于是全部自主化进行,没有办法调整标定中的图像样本,因此普遍来说,标定精度会弱于matlab。建议在标定时使用matlab标定。

这里是目录

  • 标定过程
  • 参数分析
  • 极线矫正参数

标定过程

与标定普通内窥镜的流程相同
选择matlab工具箱中的双目标定工具箱
在这里插入图片描述
添加图像
在这里插入图片描述
选择左右目相机图像,名称一一对应,选择棋盘格间距
在这里插入图片描述
标定选项
在这里插入图片描述
角点提取效果

在这里插入图片描述
根据重投影误差,删减误差过大的样本,平均误差越小越好
在这里插入图片描述
极线对齐结果
在这里插入图片描述

然后export将参数保存到工作区域,在工作区域另存为mat数据
完成标定

参数分析

需要注意的是,在标定的结果中,不会出现双目测距中需要的参数,如果想获得

参数结果
在这里插入图片描述
其中左右相机的参数数据如下
在这里插入图片描述

RadialDistortion:径向畸变,摄像头由于光学透镜的特性使得成像存在着径向畸变,可由K1,K2,K3表示。

TangentialDistortion:切向畸变,由于装配方面的误差,传感器与光学镜头之间并非完全平行,因此成像存在切向畸变,可由两个参数P1,P2表示。
在使用时,需要注意参数的排放顺序,即(K1,K2,P1,P2,K3)

IntrinsicMatrix:存放的是摄像头的内参,只与摄 像机的内部结构有关,需要先转置再使用。通常表示为f,0,cx;0,fy,cy;0,0,1。其中,f和fy是焦距,cr和cy是图像中心的像素坐标。内参矩阵描述了摄像头的几何特性和成像方式,对于图像校正和三维重建等任务非常重要

FundamentalMatrix 和EssentialMatrix分别是基础矩阵和本质矩阵

极线矫正参数

[re_imgleft, re_imgright,Q,Pl,Pr,Rl,Rr] = rectifyStereoImages(leftimg,rightimg,stereoParams.stereoParams,'OutputView', 'valid');

得到极线对齐相关参数

Q:视差矩阵,用于后续的三维重建
Pl:左侧相机的投影矩阵
Pr:右侧相机的投影矩阵
Rl:左侧相机的旋转矩阵
Rr:右侧相机的旋转矩阵

都看到这了,点个赞再走吧彦祖

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



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

相关文章

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

linux批量替换文件内容的实现方式

《linux批量替换文件内容的实现方式》本文总结了Linux中批量替换文件内容的几种方法,包括使用sed替换文件夹内所有文件、单个文件内容及逐行字符串,强调使用反引号和绝对路径,并分享个人经验供参考... 目录一、linux批量替换文件内容 二、替换文件内所有匹配的字符串 三、替换每一行中全部str1为st

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

深度解析Java DTO(最新推荐)

《深度解析JavaDTO(最新推荐)》DTO(DataTransferObject)是一种用于在不同层(如Controller层、Service层)之间传输数据的对象设计模式,其核心目的是封装数据,... 目录一、什么是DTO?DTO的核心特点:二、为什么需要DTO?(对比Entity)三、实际应用场景解析

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

深度解析Python装饰器常见用法与进阶技巧

《深度解析Python装饰器常见用法与进阶技巧》Python装饰器(Decorator)是提升代码可读性与复用性的强大工具,本文将深入解析Python装饰器的原理,常见用法,进阶技巧与最佳实践,希望可... 目录装饰器的基本原理函数装饰器的常见用法带参数的装饰器类装饰器与方法装饰器装饰器的嵌套与组合进阶技巧

深度解析Spring Boot拦截器Interceptor与过滤器Filter的区别与实战指南

《深度解析SpringBoot拦截器Interceptor与过滤器Filter的区别与实战指南》本文深度解析SpringBoot中拦截器与过滤器的区别,涵盖执行顺序、依赖关系、异常处理等核心差异,并... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

Java实现删除文件中的指定内容

《Java实现删除文件中的指定内容》在日常开发中,经常需要对文本文件进行批量处理,其中,删除文件中指定内容是最常见的需求之一,下面我们就来看看如何使用java实现删除文件中的指定内容吧... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细介绍3.1 Ja