在Unity中访问HoloLens深度图像?

时间:2019-03-04 03:41:44

标签: hololens

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

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

3 个答案:

答案 0 :(得分:2)

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

即使Microsoft文档(在底部)上的references所引用的页面也不存在

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

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