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

华为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.kler.cn/a/380728.html

相关文章:

  • Linux 常见用例汇总
  • Linux export命令
  • react中使用ResizeObserver来观察元素的size变化
  • 智能体实战(需求分析助手)一、需求概述及迭代规划
  • 详细ECharts图例3添加鼠标单击事件的柱状图
  • redis数据转移
  • 聊一聊Spring中的@Transactional注解【中】【事务传播特性】
  • 【保姆级教程】使用 oh-my-posh 和 clink 打造个性化 PowerShell 和 CMD
  • vue 使用docx-preview 预览替换文档内的特定变量
  • k8s Service四层负载:服务端口暴露
  • 【OJ题解】在字符串中查找第一个不重复字符的索引
  • WPF-实现多语言的静态(需重启)与动态切换(不用重启)
  • 这款Chrome 插件,帮助任意内容即可生成二维码
  • C语言---文件操作万字详细分析(6)
  • Charles抓包安装
  • 一个最简单的网络编程
  • 【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
  • git使用的一般流程
  • 一周内从0到1开发一款 AR眼镜 相机应用?
  • 浅谈——深度学习和马尔可夫决策过程
  • bert-base-chinese模型使用教程
  • Linux系统-日志轮询(logrotate)
  • 【Java语言】继承和多态(一)
  • FPGA实现图像处理算法的创新点
  • Handler源码和流程分析
  • 算法: 链表题目练习