使用Android L和Camera2 API的相机预览图像数据处理

腹股沟淋巴结炎

我正在处理一个处理来自相机的输入图像并将其显示给用户的android应用。这非常简单,我PreviewCallback在的相机对象上注册了setPreviewCallbackWithBuffer这很容易并且可以与旧的相机API一起流畅地工作

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

我正在尝试移植我的应用程序以利用新的Camera2 API,但我不确定该怎么做。我在L预览示例中遵循了Camera2Video,该示例允许录制视频。但是,样本中没有直接的图像数据传输,所以我不知道应该从哪里确切地获取图像像素数据以及如何处理它。

谁能帮我或建议一个如何PreviewCallback在android L中获得功能的方法,或者如何在显示到屏幕之前从相机处理预览数据?(相机对象上没有预览回调)

谢谢!

副总裁

由于该Camera2API与当前API有很大的不同Camera,因此可能有助于阅读文档。

一个很好的起点就是camera2basic例子。它演示了如何使用Camera2API并进行配置ImageReader以获取JPEG图像并进行注册ImageReader.OnImageAvailableListener以接收这些图像

要接收预览帧,您需要将ImageReader的表面添加setRepeatingRequest的中CaptureRequest.Builder

另外,您应该将ImageReader的格式设置YUV_420_888,以在8MP时提供30fps的速度(文档保证Nexus 5在8MP时为30fps)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Android Camera2 API与Camera.Parameters.getHorizontalViewAngle()和Camera.Parameters.getVerticalViewAngle()等效吗?

使用camera2 API捕获图片而不进行预览

如何使用Android Camera2 API捕获单个图像?

Android Camera2基础API

Android Camera2 API显示已处理的预览图像

Android Camera2捕获歪斜的图像

使用Android camera2获得全屏预览

Android Camera2预览输出大小

使用Camera2 API的低FPS

如何在Camera2 API和Android中设置无限远焦点?

Android Camera2 API裁剪视频

Android Camera2与NDK Native Camera API

Android NDK Camera2 API

使用Android Camera2 API和ANativeWindow进行实时图像处理和显示

android Camera2 API + TextureView叠加层,可在相机预览上进行绘制

使用Android Camera2 API进行人脸检测和绘制圆圈

Android Camera2 API缓冲区和相机断开连接问题

使用MediaCodec和Camera2 API录制视频

Android Camera2预览和捕获,宽高比为4:3,但宽度>高度

Android Camera2在TextureView上显示黑色和扭曲的JPEG图像?

Android Camera2预览被拉伸

Android Camera2图像处理:什么是几何校正?

使用Android Camera2 API在后台捕获视频

搜索焦点在Android中使用外部镜头和camera2 API时一直失败

Android Camera2 空预览图像

如何在预览到 Android Camera2 API 期间获取指向每个帧数据的指针?

使用 Camera2 API 设置相机变焦

Android Camera2 同步图像和元数据

在 Redmi Note7 s camera2 API Android 中捕获图像时相机被冻结