【问题标题】:Access HoloLens depth image in Unity?在 Unity 中访问 HoloLens 深度图像?
【发布时间】:2019-03-04 03:41:43
【问题描述】:

有谁知道如何从 Unity 应用程序中的 Hololens 深度相机访问原始深度图像?我知道我必须在 Hololens 上启用“研究模式”。我在https://github.com/Microsoft/HoloLensForCV/tree/master/Samples/SensorStreamViewer 看到了“SensorStreamViewer”的示例,但这是一个 DirectX 应用程序。我想使用 Unity,因为它似乎比 DirectX 更容易进行原型设计和开发(尤其是对于像我这样的新开发人员!)。

顺便说一句,我计划将深度图像流式传输到外部台式 PC 以进行对象识别,并在 Hololens 上接收回结果,以便我可以渲染与真实对象对齐的全息图。

【问题讨论】:

    标签: hololens


    【解决方案1】:

    不知道我是否理解正确。我建议检查 SpatialMappingExample 和 SpatialProcessing。它是关于可视化和访问空间映射数据的。处理原始空间映射数据,基于空间映射网格查找和创建平面......但是现在他们删除了所有指南,因为新的 MRTK V2 -.- 所以我不能给你参考

    即使是微软文档(底部)上的references 也引用了一个不存在的页面

    【讨论】:

    • 感谢您的建议。应该提到我也是用RGB彩色相机,需要得到彩色图像中点对应的深度(或范围)。看起来空间映射工具创建了一个三角形网格,顶点位于世界坐标中。我想我可以将此网格投影到当前彩色图像上以确定每个点的深度,尽管我想知道这是否会很慢。最好以图像的形式简单地从深度相机获取原始数据。如果有一个 Unity 包装器可以让您执行此操作,那就太好了。
    【解决方案2】:

    在与包括微软技术支持在内的许多人交谈后,我发现只有启用研究模式,然后编写 C++ 代码并使用 DirectX,才能访问 Hololens 深度相机图像。无法使用 C# 和 Unity 访问深度相机。

    如果其他人想要实现这一点,可以编写访问深度相机的 C++ 代码,并将其放入可从 Unity 使用的插件 dll 中。例如,以下项目展示了如何从 Unity(但不是深度摄像头)中访问网络摄像头流:https://github.com/VulcanTechnologies/HoloLensCameraStream

    【讨论】:

      【解决方案3】:

      如果您编写包装类并将 HoloLensForCV 用作 winmd(如 https://github.com/doughtmw/HoloLensForCV-Unity),则可以在 Unity 中使用它。您还可以将代码转换为 C# 代码。您需要转换 MediaFrameSourceGroup 类。流数据可通过 Guid 访问。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-31
        • 1970-01-01
        • 2014-04-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多