当前位置: 首页 > 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.mrgr.cn/news/66328.html

相关文章:

  • 网络爬虫中的反爬虫技术:突破限制,获取数据
  • 安科瑞Acrel-2000ES储能柜能量管理系统的详细介绍-安科瑞 蒋静
  • YOLOv10改进策略【注意力机制篇】| ICLR2023 高效计算与全局局部信息融合的 Sea_Attention 模块(含PSA二次创新)
  • 从零学习大模型(十)-----剪枝基本概念
  • java项目之校园资料分享平台(springboot)
  • Python小游戏20——超级玛丽
  • 【LeetCode】【算法】146. LRU缓存
  • Python学习笔记-生成器的应用与原理
  • 好看的超清4K视频素材去哪儿找?下载素材资源网站推荐
  • AI大模型重塑软件开发:流程、优势、挑战与展望
  • 「C/C++」C/C++标准库 之 #include<cctype> 字符分类处理库
  • 牛客周赛 66 F 小苯的字符提前
  • 进程的调度(超详细解读)
  • Day 49 || 1143.最长公共子序列、1035.不相交的线、 53. 最大子序和 、392.判断子序列
  • Java入门(8)--反射机制
  • 零基础学习Spring AI Java AI SpringBoot AI调用大模型OpenAi Ollama集成大模型
  • HarmonyOS开发 - Ability往页面(Pages)中传递数据
  • 年薪平均几十万?!哪些行业的软件测试工程师需求量大,前景好?
  • ubuntu工具 -- ubuntu服务器临时没有网络,急需联网下载东西怎么办? 使用手机提供网络
  • @ApiOperation(“修改帐号状态“)详细解释一下以上代码
  • 视频监控接入平台功能:视频平台系统的硬件性能直观显示和系统软件运行情况和状态显示
  • 【初阶数据结构篇】链式结构二叉树(续)
  • vue组件在项目中的常用业务逻辑(3)
  • 11.5 dmy NOIP模拟赛DAY4 总结
  • operator[ ]和迭代器,auto,for流,reserve
  • MySQL初学之旅(1)配置与基础操作