我正在尝试将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的解决方法。

最佳答案

您可以将C ++ API与TangoService_connectOnFrameAvailable结合使用,以合理的速度获得YUV帧缓冲区。检出探戈示例video-overlay-jni-example,在该示例中进行RGB转换。我使用这种方式将OpenCV过滤器连接到渲染过程。

08-18 00:45