我正在尝试将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。
答案 0 :(得分:0)
您可以将C ++ API与TangoService_connectOnFrameAvailable
一起使用,您将以合理的速度获得YUV帧缓冲区。查看他们进行RGB转换的探戈示例video-overlay-jni-example。我使用这种方式将OpenCV过滤器与渲染过程接口。