繁体   English   中英

如何将android camera2将预览帧数据提供给OpenCV进行处理

[英]How to android camera2 feed the preview frame data to OpenCV for processing

我想在相机预览中做一些图像处理,比如灰度在老相机api很容易,但移植到camera2 api,我不知道怎么做

public void onPreviewFrame(byte[] data, Camera cam) {
// custom image data processing
}

我试图从这里获得框架(如问题的答案中所建议的):

private final ImageReader.OnImageAvailableListener mOnImageAvailableListener
        = new ImageReader.OnImageAvailableListener() {

    @Override
    public void onImageAvailable(ImageReader reader) {

        Log.d("Img", "onImageAvailable");
        mBackgroundHandler.post(new ImageSaver(reader.acquireNextImage(), mFile));
    }

};

他没用,因为只有在用户执行图像捕获后才会调用回调

来自Google https://github.com/googlesamples/android-HdrViewfinder的此示例提供了您需要执行的操作的基本信息。

摘要:

1)将Surface添加到摄像机的输出

2)收听此表面的更新,在上面的示例中,它发生在ViewfinderProcessor.java中

上面的示例使用2个曲面进行假HDR预览,但您应该能够轻松地将示例清理为仅使用1个曲面。 此示例还使用自定义Render Script内核进行处理,您不需要使用它。 您可以轻松捕获ViewfinderProcessor.java中的缓冲区类型Allocation ,以获取旧的Camera API中的字节数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM