当前位置: 首页 > news >正文

华为HarmonyOS借助AR引擎帮助应用实现虚拟与现实交互的能力5-识别平面语义

对于检测到的平面,您可以通过AR Engine识别该平面的语义,包括墙面、地面、座椅面、桌面、天花板、门面、窗面、床面。

创建AR会话

创建AR会话并配置为平面语义识别模式。

 
  1. AREngine_ARSession *arSession = nullptr;
  2. // 创建AR会话。
  3. HMS_AREngine_ARSession_Create(nullptr, nullptr, &arSession);
  4. AREngine_ARConfig *arConfig = nullptr;
  5. // 创建AR会话配置器。
  6. HMS_AREngine_ARConfig_Create(arSession, &arConfig);
  7. // 设置语义识别模式为平面语义识别。
  8. HMS_AREngine_ARConfig_SetSemanticMode(arSession, arConfig, ARENGINE_SEMANTIC_MODE_PLANE);
  9. // 配置器设置给AR会话。
  10. HMS_AREngine_ARSession_Configure(arSession, arConfig);

检测环境中的平面

进行平面语义识别之前,您需要先检测环境中的平面。您可以参考检测环境中的平面完成平面检测过程,并获取环境中的平面数量。当存在平面时,您可以继续下面的步骤。

初始化平面语义标签

创建并初始化平面语义标签label,用于描述平面的语义。

 
  1. AREngine_ARSemanticPlaneLabel label = ARENGINE_PLANE_UNKNOWN;

平面语义标签定义为枚举类型,包括9种枚举值(1种未知类型+8种平面类型)。

 
  1. typedef enum {
  2. /** Unknown type. */
  3. ARENGINE_PLANE_UNKNOWN = 0,
  4. /** Wall. */
  5. ARENGINE_PLANE_WALL = 1,
  6. /** Floor. */
  7. ARENGINE_PLANE_FLOOR = 2,
  8. /** Seat. */
  9. ARENGINE_PLANE_SEAT = 3,
  10. /** Table. */
  11. ARENGINE_PLANE_TABLE = 4,
  12. /** Ceiling. */
  13. ARENGINE_PLANE_CEILING = 5,
  14. /** Door. */
  15. ARENGINE_PLANE_DOOR = 6,
  16. /** Window. */
  17. ARENGINE_PLANE_WINDOW = 7,
  18. /** Bed. */
  19. ARENGINE_PLANE_BED = 8
  20. } AREngine_ARSemanticPlaneLabel;

识别平面类型

调用HMS_AREngine_ARPlane_GetLabel函数,获取平面类型,结果存放在label中。

 
  1. HMS_AREngine_ARPlane_GetLabel(arSession, arPlane, &label);
http://www.lryc.cn/news/477678.html

相关文章:

  • MAC 安装 brew及其常用命令
  • nVisual标签打印模块的部署与使用
  • python NLTK快速入门
  • 技术速递|.NET 9 中 System.Text.Json 的新增功能
  • LLM 使用 Elastic 实现可观察性:Azure OpenAI (二)
  • 数据库基础(2) . 安装MySQL
  • 高效自动化测试,引领汽车座舱新纪元——实车篇
  • GitHub中搜索项目方法
  • 浅谈串口服务器的作用
  • Spark 的Standalone集群环境安装与测试
  • 在Java中,实现数据库连接通常使用JDBC
  • Git 测验
  • L1G3000 提示工程(Prompt Engineering)
  • 【SQL50】day 1
  • jmeter脚本-请求体设置变量and请求体太长的处理
  • 基于java+SpringBoot+Vue的旅游管理系统设计与实现
  • SD3模型的部署(本地部署)
  • 讲解DFD和ERD
  • TVM计算图分割--LayerGroup
  • OPPO开源Diffusion多语言适配器—— MultilingualSD3-adapter 和 ChineseFLUX.1-adapter
  • Spring 设计模式之责任链模式
  • 简单的 docker 部署ELK
  • 四款主流的3D创作和游戏开发软件的核心特点和关系
  • 聚划算!Transformer-LSTM、Transformer、CNN-LSTM、LSTM、CNN五模型多变量回归预测
  • 信息安全工程师(76)网络安全应急响应技术原理与应用
  • 使用 OpenCV 实现图像的透视变换
  • openGauss数据库-头歌实验1-4 数据库及表的创建
  • 吉利极氪汽车嵌入式面试题及参考答案
  • pycharm中的服务是什么?
  • [Unity Demo]从零开始制作空洞骑士Hollow Knight第十七集:制作第二个BOSS燥郁的毛里克