华为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);
相关推荐
xmdy58661 小时前
Flutter + 开源鸿蒙实战|城市智慧停车管理系统 Day6 全局组件封装+意见反馈+系统设置+代码重构+bug修复+细节调优
flutter·开源·harmonyos
xmdy58661 小时前
Flutter + 开源鸿蒙实战|城市智慧停车管理系统 Day5 超时提醒弹窗+深浅色全局主题+登录页面+记住登录+隐私协议+全局UI美化+鸿蒙打包配置
flutter·开源·harmonyos
番茄炒西红柿炒洋柿子1 小时前
OpenCV使用平面拼接图片
人工智能·opencv·平面
廖松洋(Alina)1 小时前
01环境搭建与项目创建-鸿蒙PC端Electron开发
华为·electron·开源·harmonyos·鸿蒙
三声三视1 小时前
Electron鸿蒙桌面应用打包部署完全指南(含自动更新)
前端·electron·前端框架·harmonyos·鸿蒙·桌面端
三声三视1 小时前
Electron for 鸿蒙PC:用 Node-API 打通原生系统调用,告别“Web 孤岛
electron·harmonyos·桌面应用·鸿蒙
AlbertZein2 小时前
跨项目设计模式(二):策略模式——从 ImageKnife 的加载器到 HMRouter 的生命周期
harmonyos
AlbertZein2 小时前
跨项目设计模式(一):单例模式在鸿蒙框架中的 6 种实现
harmonyos
前端不太难2 小时前
鸿蒙 App 的登录 / 订单 / 支付系统拆解
华为·状态模式·harmonyos
翰德恩咨询2 小时前
DSTE咨询洞察:华为战略务虚会如何“务实”
华为