Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将ARToolkit标记跟踪添加到Tango中_Android_Android Camera_Google Project Tango_Android Camera2_Artoolkit - Fatal编程技术网

Android 将ARToolkit标记跟踪添加到Tango中

Android 将ARToolkit标记跟踪添加到Tango中,android,android-camera,google-project-tango,android-camera2,artoolkit,Android,Android Camera,Google Project Tango,Android Camera2,Artoolkit,我一直在尝试将ARToolkit标记对象跟踪集成到Tango应用程序中 到目前为止,我已经创建了一个构建,以便tango应用程序可以访问和使用ARToolkit本机库或ARToolkit Unity包装器。 但是,在默认配置中,它们似乎都需要独占访问摄像头 您如何向两个库提供相同的Android视频源 你能不能创建一个虚拟的摄像机设备,它可以将馈送加倍 你能不能把tango feed当作正常的,然后用一种特殊的方式重新发送到ARToolkit中 [编辑] ARToolkit使用较旧的Cam

我一直在尝试将ARToolkit标记对象跟踪集成到Tango应用程序中

到目前为止,我已经创建了一个构建,以便tango应用程序可以访问和使用ARToolkit本机库或ARToolkit Unity包装器。 但是,在默认配置中,它们似乎都需要独占访问摄像头

您如何向两个库提供相同的Android视频源

  • 你能不能创建一个虚拟的摄像机设备,它可以将馈送加倍
  • 你能不能把tango feed当作正常的,然后用一种特殊的方式重新发送到ARToolkit中

[编辑]
ARToolkit使用较旧的Camera1 API,接受onPreviewFrame()回调,并将字节[]数据传递给它自己的本机库调用,该调用执行实际工作

按照第二个要点,Tango是否可以使用类似的方式提供每帧原始摄影机数据的副本。
(ARToolkits NDK功能似乎期望NV21,但也可以接受)


如果数据可以从tango中提取,我相信ARToolkit NDK功能可以在不实际拥有相机的情况下使用。

我担心您提到的两种方法都不起作用。Tango独家使用摄像机,我相信ARToolkit也通过camera2 API独家使用摄像机。对于当前的TangoSDK,我认为漫游将使用ARToolkit进行相机渲染,使用Tango进行姿势跟踪

然而,这可能会暴露时间戳的问题,即Tango和ARToolkit具有不同的时间戳。解决方法是在应用程序启动时在最开始的时候使用时间戳偏移量,并在基于时间戳从Tango查询姿势时不断应用该偏移量。

这显示了一个将两者集成在一起的示例

它还链接到示例源代码,但在测试后我根本没有整理它-请小心

您不能将相同的摄影机源馈送到两个库(第一个要点),但可以将摄影机馈送从Tango()转发到ARToolkit([AcceptVideoImage][2])(第二个要点)。
这并不理想,因为从C#向Java发送数据效率相当低。Phab 2 Pro必须对视频X4进行降采样以获得合适的帧速率。
更好的答案是用管道/套接字替换AndroidJavaClass调用。
还有很多小问题-这是一个非常棘手的解决方法。

谢谢!我将进行更多的研究,并查看拆分姿势/跟踪和渲染的建议。我更新了这个问题,想把图像数据放到ARToolkit的NDK库中,如果你能告诉我这听起来是否可行或者我是在浪费时间,我将非常感激!使用ItaGoVideoOverlay从Tango获取图像数据,通过向上传递到Activity,然后向下传递到JNI调用(C#没有直接的库调用)将其发送到ARToolkit。我需要解决如何在tango提供的格式和ARToolkit接受的格式之间进行更改。