我正在尝试将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过滤器连接到渲染过程。