我一直在尝试将 ARToolkit 标记对象跟踪集成到 Tango 应用程序中。
到目前为止,我已经创建了一个构建,以便 tango 应用程序可以访问和使用 ARToolkit Native Library 或 ARToolkit Unity 包装器。 但是,它们似乎都需要在默认配置下独占访问相机。
您如何向两个库提供相同的 Android 视频源?
- 你能制作一个模拟摄像头设备,使信号加倍吗?
- 你能像往常一样接受探戈提要,然后用特殊的 VideoConf 将它重新发送到 ARToolkit 中吗?
[编辑]
ARToolkit 使用较旧的 Camera1 API,采用 onPreviewFrame() 回调并将该 byte[] 数据传递给它自己的 Native Library 调用,后者执行实际工作。
按照第二个要点,Tango 能否使用类似 iTangoVideoOverlay 的方式提供每帧原始相机数据的副本? .
(ARToolkits NDK 功能似乎期望 NV21,但也可以接受 other formats )
如果该数据可以从 tango 中提取,我相信 ARToolkit NDK 功能可以在没有真正拥有相机的情况下使用。
最佳答案
恐怕您提到的两种方法都行不通。 Tango 拥有相机的独占权限,我相信 ARToolkit 也通过 camera2 API 独占相机。使用当前的 TangoSDK,我认为绕行将使用 ARToolkit 进行相机渲染,并使用 Tango 进行姿势跟踪。
但是,这可能会暴露时间戳问题,即 Tango 和 ARToolkit 具有不同的时间戳。解决方案是在应用程序启动的一开始就采用时间戳偏移量,并在基于时间戳从 Tango 查询姿势时不断应用该偏移量。
关于android - 将 ARToolkit 标记跟踪添加到 Tango,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41934359/