基于matlab使用标记增强技术将虚拟内容呈现到现实场景中(附源码)

news2024/11/25 18:34:37

一、前言

此示例演示如何使用基于标记的增强现实将虚拟内容呈现到场景中。

增强现实 (AR) 通过自然混合真实和虚拟内容来增强现实世界的场景,从而创建新颖的应用程序。例如,增强现实应用程序可以添加虚拟标尺,使用户能够直接从图像数据进行测量。实现增强现实系统需要使用计算机视觉技术来理解场景几何形状,以便可以将虚拟内容以适当的视角和比例添加到场景中。

确定场景几何体的常用方法是使用经过校准的摄像机来检测已知的基准标记,例如 AprilTag。使用基准标记的好处是,它们设计为在各种成像条件和视点下进行检测,并可用于生成准确的相机姿态估计。准确的姿势估计对于产生无缝的AR体验至关重要,这种体验不会随着摄像机在场景中移动而抖动。

在此示例中,校准相机用于检测和跟踪放置在桌子顶部的 AprilTag 标记。AprilTag姿势是在摄像机在场景中移动时估计的,此信息用于在AprilTag顶部投影虚拟长方体。此示例中显示的工作流程突出显示了许多 AR 应用程序中使用的基本计算机视觉技术。

二、加载视频

将视频文件下载到临时目录中。加载要添加AR内容的视频并阅读第一帧。显示第一帧。

三、加载相机内联函数

AR和VR应用需要经过校准的相机来定义相机在世界上的位置。

四、估计四月标签姿势

函数可用于检测和估计多个AprilTags的姿势。为了估计姿势,该函数需要相机内在和AprilTag的大小。以毫米为单位指定AprilTag的大小,以匹配相机校准期间使用的单位。因为AprilTag是方形的,所以测量一侧的长度就足够了。准确测量尺寸以产生准确的姿势估计非常重要。

若要使 AprilTag 检测速度更快并减少错误检测,请指定 AprilTag 系列。支持广泛的April标签。估计标签姿势。AprilTag 的姿势定义了此示例中使用的世界坐标系。AprilTag的中心是原点。X-Y 平面由 AprilTag 所在的平面定义,Z 轴指向标记。

按照惯例,该函数返回 AprilTag 姿势,以便 z 轴指向 AprilTag。对于此示例,将 z 轴指向标记之外更为直观,以便可以将位于 AprilTag 顶部的虚拟对象定义为具有正高度值。对估计的标记姿势应用旋转,将 y 轴旋转 180 度以翻转 z 轴。

显示更新的世界坐标轴。

五、定义虚拟内容

定义一个三维长方体以投影到 AprilTag 的顶部。多维数据集以 AprilTag 为中心,并定义为与标记具有相同的大小。

六、向图像添加虚拟内容

使用函数将虚拟长方体顶点投影到影像坐标系中。用虚拟内容扩充图像。

七、以 3D 形式可视化相机姿势

使用估计的 AprilTag 姿势和相机内在来创建与上面所示图像对应的场景的 3D 虚拟表示。这种虚拟表示对于可视化相机轨迹和调试AR应用程序非常有用。

接下来,使用函数将标签姿势转换为相机外联函数,后者在世界坐标中表示相机方向和位置。最后,使用函数以 3D 形式可视化相机。

此示例的下一部分演示如何更新相机位置,以便在相机在场景中移动时可视化轨迹。

八、为视频添加虚拟内容并可视化摄像机轨迹

对其余视频帧重复上述步骤。

九、总结

此示例展示了使用基于标记的 AR 通过虚拟内容增强场景所需的基本计算机视觉技术。可以扩展此示例中显示的技术,以向场景添加不同类型的内容,例如图像或其他三维形状。

十、程序

使用Matlab R2022b版本,点击打开。(版本过低,运行该程序可能会报错)

程序有偿获取:评论区下留言,博主看到会私信你。

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

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

相关文章

如何正确使用 ThreadLocal

1 前言 当多线程访问共享且可变的数据时,涉及到线程间同步的问题,并不是所有时候,都要用到共享数据,所以就需要ThreadLocal出场了。 ThreadLocal又称线程本地变量,使用其能够将数据封闭在各自的线程中,每…

数据管理成熟度评估DCMM之生产企业数据战略管理办法

生产企业数据战略管理办法 第一部分:导言 随着信息技术的快速发展和数据规模的急剧增长,生产企业越来越重视数据的价值和管理。有效的数据战略管理办法可以帮助生产企业更好地管理和利用数据资源,提高运营效率、决策质量和创新能力。本文将…

SpringMVC数据传递总结

文章目录 1. 分析总结2. 普通格式数据2.1 普通参数2.2 pojo参数2.3 嵌套pojo参数2.4 数组 -- 普通参数2.5 集合 -- 普通参数2.6 web容器添加过滤器指定字符集 3. JSON格式数据3.1 相关准备3.2 json数组(基本)3.3 json对象(pojo)3.4 json数组(pojo) 1. 分析总结 1.1 普通格式数据…

K8S平台安全框架

平台安全框架 1 平台安全框架1.1 安全框架1.1.1 认证框架1.1.2 框架解读 1.2 认证实践1.2.1 令牌用户1.2.2 证书用户 1.3 授权实践1.3.1 集群用户1.3.2 角色基础1.3.3 授权基础1.3.4 用户组实践1.3.5 SA授权1.3.6 SA秘钥 1.4 准入实践1.4.1 准入基础1.4.2 优先调度1.4.3 资源配…

F2-NeRF阅读日志

看到了一篇很好的paper,记录一下,参考: https://www.bilibili.com/video/BV1Lz4y187jL/?spm_id_from333.337.search-card.all.click&vd_sourcea059a118f33728f79abd79e02f8f72d4 https://zhuanlan.zhihu.com/p/618362291 latex写的&am…

Qt5编译使用QFtp模块(环境:win+Qt5.15.2+msvc2019)

目录 QFtp下载编译配置QFtp模块测试 QFtp下载 下载方式较多,可以从github上进行下载:https://github.com/qt/qtftp.git 。 我已将下载好的ftp源码资源放出来了,可以直接下载0积分:链接跳转。 编译 使用Qt Create打开工程后&…

DuDuTalk:4G录音工牌在汽车试乘试驾场景中有什么独特应用价值?

在市场竞争越来越激烈的今天,不管是新能源市场还是燃油车市场,试乘试驾已经当仁不让地成为了几乎所有汽车品牌关注的焦点。特斯拉、“蔚小理”、奔驰、宝马等头部品牌,对于试乘试驾的重视度一定程度上甚至已经超过了展厅接待。 然而&#xf…

解决notion共享网址无法复制的问题

1、打开url Notion – The all-in-one workspace for your notes, tasks, wikis, and databases. 2、选中要复制的内容。 3、右击鼠标,选择“打印” 4、在打印界面中选中要复制的内容,然后按“复制” 复制完成。

Stable Difussion能做什么?

​扩散模型(Diffusion Model)​ 稳定扩散模型(Stable Diffusion)属于深度学习模型中的一个大类,即扩散模型。它们属于生成式模型,这意味着它们是被设计用于根据学习内容来生成相似的新的数据的。对于稳定扩…

Vue2与Vue3相应原理区别

Vue3.0中的响应式原理 vue2.x的响应式 1.实现原理: 对象类型:通过Object.defineProperty()对属性的读取、修改进行拦截(数据劫持)。数组类型:通过重写更新数组的一系列方法来实现拦截。(对数组的变更方法…

测试老鸟整理,性能测试高并发压力测试-案例,进阶之道...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 单个接口的压测&a…

通过foxmail同步其他邮箱邮件到我司邮箱

1、先通过foxmail 登录需要备份邮件的邮箱帐号,全选需要备份的邮件,右键选择“导出邮件”。 2、在foxmail中使用IMAP协议登录我司邮箱帐号,右键选择收件箱或其他文件夹导入邮件,将之前导出备份的邮件文件全选导入。 3、导入完成后…

glibc缺陷居然会导致MySQL卡住?

问题来源: 版本:5.7.25。 现象:备机主从延迟不断变大,无法登陆数据库,建立连接时卡住,但很快恢复正常了。 分析: 常规分析: 通常情况下,这类问题无法分析&#xff0c…

vmware17安装openkylin

官网 系统下载-openKylin 开放麒麟社区官网 | 开源聚力,共创未来 下载链接 https://www.openkylin.top/downloads/download-smp.php?id18 安装 点击浏览,选择镜像 修改服务器cpu配置 修改内存配置 修改网络连接方式 点击启动 等待安装完成 出现上图说…

比较两个Excel表格中的数据,不相同的高亮显示

下面是常用的在Excel中比较两个Excel表格数据的方法, 比如要比较下面A和B中的数据是否一致: 可以这样做:

ikbc键盘2.4G接收器丢失,重新对码

我的键盘:ikbc W200 1.键盘关掉重开; 2.新接收器插在电脑上; 3.电脑上打开软件,点开始对码,一会就连接上了。 对码软件放在这里: 我用夸克网盘分享了「IKBC 对码.rar」,点击链接即可保存。打开…

(Qt) Http之Get请求使用基础

文章目录 前言Code完整code效果循环loop的使用 讲解配置相关对象Https END 前言 http的操作是网络通信中非常常见的操作,其中广泛使用get,post两种操作。 本文将对Qt中,http的get请求做简单应用,来进行展示。 Code 完整code …

2分钟完成Github配置ssh密钥

2分钟完成Github配置ssh密钥 前言: 配置ssh密钥的目的是为了可以在自己的本地开发环境顺利拉取和推送代码到Github 本机是Ubuntu 16.04环境,已安装ssh 步骤1 进入当前用户的home目录: #执行以下命令进入 cd ~进入.ssh/目录下生成ssh的密钥…

JS antdv实现表格树形级联效果

概述 项目中需实现以下这种效果:级联数据,表格横向排列,数据之间相互联动。现有UI组件无法满足此需求,只能撸起袖子加油干!! 实现效果如下 开发前先准备一个树形数据 treeData.js const treeData [{ar…

Linux常用命令【多图预警】

Linux常用命令 文章目录 Linux常用命令Linux虚拟机的安装Linux系统目录结构Linux命令的语法基础命令查看当前目录下所有子目录和子文件ls查看命令手册man查看当前目录pwd切换到指定目录cd 管道符 |文件目录操作命令创建一级目录(文件夹)mkdir创建多级目录…