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

使用Android L和Camera2 API处理相机预览图像数据,第1张

概述我正在开发一个Android应用程序,它正在处理来自摄像头的输入图像并将其显示给用户.这很简单,我使用setPreviewCallbackWithBuffer在相机对象上注册了一个PreviewCallback.使用旧的相机API,这很容易并且运行顺畅publicvoidonPreviewFrame(byte[]data,Cameracam){//cu

我正在开发一个Android应用程序,它正在处理来自摄像头的输入图像并将其显示给用户.这很简单,我使用setPrevIEwCallbackWithBuffer在相机对象上注册了一个PrevIEwCallback.@H_502_1@使用旧的相机API,这很容易并且运行顺畅

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

我正在尝试移植我的应用程序以利用新的Camera2 API,我不确定我该怎么做.我在L预览示例中使用了Camera2VIDeo,可以录制视频.但是,样本中没有直接的图像数据传输,因此我不明白应该在何处获取图像像素数据以及如何处理它.

有人可以帮我或建议如何在AndroID L中获得PrevIEwCallback的功能,或者如何在将其显示到屏幕之前处理相机的预览数据? (相机对象上没有预览回调)

谢谢!

解决方法:

由于Camera2 API与当前的Camera API非常不同,因此阅读文档可能会有所帮助.

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

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

此外,您应该将ImageReader的格式设置为YUV_420_888,这将在8MP时为您提供30fps(Nexus 5的文档保证在8MP时为30fps).

总结

以上是内存溢出为你收集整理的使用Android L和Camera2 API处理相机预览图像数据全部内容,希望文章能够帮你解决使用Android L和Camera2 API处理相机预览图像数据所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1103560.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存