将帧保存到文件onFrameAvailable [Google Project Tango]

时间:2016-02-17 16:12:59

标签: java android google-project-tango

我正在尝试将RGB帧与Pose数据一起保存到文件中,然后对它们进行一些后期处理。主要问题是目前使用Tango Java API执行此操作的唯一方法是通过

连接它们来呈现GLSurfaceView
tangoCameraPreview.connectToTangoCamera(mTango,TangoCameraIntrinsics.TANGO_CAMERA_COLOR);

然后你会使用GlReadPixels将像素读入数组并将其保存到文件中。

这个问题是GlReadPixels 。事实上,使用这个我使用我刚才描述的内容大约需要3-4 fps。

关于拍摄照片的其他更常见的答案,我看到不同的人说使用SurfaceView代替GlSurfaceView时,他们设法达到了15fps。

我没有找到任何方法将SurfaceView用于探戈相机,因为connectToTangoCamera需要GlSurfaceView而我不能只使用Camera并绑定到SurfaceView,因为当我尝试打开它时(通过Camera.open()),它已被Tango使用了。 Tango需要使用它来获取colorToIMUPose数据。

所以我真的不确定我能找到哪种解决方法才能获得至少10fps。

1 个答案:

答案 0 :(得分:0)

您可以将C ++ API与TangoService_connectOnFrameAvailable一起使用,您将以合理的速度获得YUV帧缓冲区。查看他们进行RGB转换的探戈示例video-overlay-jni-example。我使用这种方式将OpenCV过滤器与渲染过程接口。