我一直在尝试将ARToolkit标记对象跟踪集成到Tango应用程序中。
到目前为止,我已经创建了一个构建,以便探戈应用可以访问和使用ARToolkit本机库或ARToolkit Unity包装器。
但是,它们似乎都要求在其默认配置下具有对摄像机的独占访问权。
您如何向两个库提供相同的Android视频供稿?
您能否创建一个虚拟摄像头设备,使供稿量增加一倍?
您能否像往常一样使用探戈feed,然后使用特殊的VideoConf将其重新发送到ARToolkit中
[编辑]
ARToolkit使用较旧的Camera1 API,接受onPreviewFrame()回调并将该byte []数据传递给它自己的本机库调用,该调用可以完成实际工作。
按照第二个要点,Tango可以使用iTangoVideoOverlay之类的东西来提供每帧原始相机数据的副本。
(ARToolkits NDK功能似乎期望使用NV21,但也可以接受other formats)
如果该数据可从探戈中提取,我相信无需实际拥有相机就可以使用ARToolkit NDK功能。
最佳答案
恐怕您提到的方法都不起作用。 Tango拥有相机的专有访问权,我相信ARToolkit也通过camera2 API专门占用了相机。对于当前的TangoSDK,我认为解决方法是使用ARToolkit进行摄像机渲染,使用Tango进行姿势跟踪。
但是,这可能会给时间戳记带来问题,那就是Tango和ARToolkit具有不同的时间戳记。解决方案是在应用程序启动之初就获取一个时间戳偏移,并在基于时间戳从Tango中查询姿势时不断应用该偏移。