OpenCV Android:在背景中获取相机帧而不显示在屏幕上

Muk*_*des 6 camera android opencv background-process

我编写了一个光流检测应用程序,它基于OpenCV for Android教程和Barry Thomas的应用程序OpenCV Demo 2的源代码.现在我想让这个应用程序成为后台任务,这样我就可以通过监听器接口将检测结果传递给我的主要活动.

OpenCV totorials中的所有应用程序示例都扩展Activity并实现CvCameraViewListener并显示scrren上的摄像头输入.我希望能够捕获相机帧并在背景中对帧进行光流检测,而不在屏幕上显示它们.

如何在背景中从相机获取帧,而无需显示相机输入?

小智 1

有两种方法,但是你必须在onCameraFrame方法中在内存中保留一个Mat:

@Override
public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
    mRgba = inputFrame.rgba();      
    return mRgba;
}
Run Code Online (Sandbox Code Playgroud)

1)使cameraview不可见2)使onCameraFrame返回null

无论哪种方式,您都应该在另一个视图中完成额外的工作。

  • 使相机视图不可见会停止每帧发生的任何处理..或者至少这是我的情况发生的情况 (3认同)