当前位置: 代码迷 >> Android >> 如何使用 Camera2 API android 提高捕获的图像分辨率?
  详细解决方案

如何使用 Camera2 API android 提高捕获的图像分辨率?

热度:47   发布时间:2023-08-04 10:18:39.0

我正在使用这个项目在没有打开相机视图的情况下捕获图像,但是捕获的图像非常糟糕,像这样

任何帮助使这更好?
谢谢
[编辑]
我试过其他手机,效果很好,我只在华为 Y6II 上拍了这张糟糕的照片,我不知道为什么? 手机摄像头为 13 mpx,适用于本机摄像头应用程序。

您是否只向相机设备发出了一个捕获请求? (没有自由运行的预览等)。

通常,自动曝光、对焦和白平衡例程在稳定到良好值之前需要一秒钟左右的时间流。

即使您不想在屏幕上进行预览,您也需要在保存最终图像之前从相机请求 10-30 帧数据才能开始。 或者为了更健壮,设置一个针对某些低分辨率 SurfaceTexture 的重复请求,并等待 CaptureResult CONTROL_AE_STATE / AWB_STATE 字段达到 CONVERGED,并且 AF_STATE 字段也是您想要的(取决于您使用的 AF 模式) . 然后捕获您的图像。

这是一个非常盲目的猜测,但是嘿,值得一试。

如果您使用了网络上的一些代码片段,建议获取支持的图像大小列表,然后选择第一个 - 那么这在华为设备(多个型号)上对我来说适得其反,因为华为似乎在分辨率的升序(即最小优先),而我见过的大多数其他设备都是按降序排列(即最大优先)。

因此,如果这是一个分辨率问题,则可能值得检查一下。

  相关解决方案