首页 > 解决方案 > Camera2 API 上相同的分辨率比例下视角不同

问题描述

我正在使用 Camera2 API 构建一个测试应用程序。部分设备显示以下问题,但在 1920x1080 和 1280x720 分辨率下,图像的视角不同。

我认为视角应该是一样的,因为两张图片的比例是一样的。

这些相同的问题将出现在我创建的应用程序中,并且当我在 PlayStore 上使用 Mark Harman 的 OpenCamera 应用程序测试它们时会看到相同的结果。

此图像是使用 OpenCamera 应用程序 ( https://play.google.com/store/apps/details?id=net.sourceforge.opencamera ) 捕获的。

我们测试的设备是 Galaxy J7。

Galaxy S6、7、8 和 9 在两种分辨率下具有相同的视角。

Galaxy J7 的 HAL 实现会不会出错?

(1280x720) 在此处输入图像描述

(1920x1080) 在此处输入图像描述

标签: androidandroid-camera2hal

解决方案


你确定你可以camera2在 Galaxy J7 上获得 1920x1080 分辨率吗?

我相信您使用 API 获得 1440x1080 而不是 1920x1080 camera2,请查看此 github.com/googlearchive/android-Camera2Basic/issues/123

因此,在某些带有旧版相机的设备上,您只能使用旧版CameraAPI 获得全高清预览,因此它不是比率而是分辨率本身

也在这里Android Camera2 输出大小

所以 Galaxy J7 不完全支持camera2- Legacy 级别,而不是 Limited、Full 或 3 级别

val isLegacyLevelCamera = cameraCharacteristics(context, cameraIdx)
               .get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL) 
               == CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY

因此,如果它是旧版级别 - 请使用旧版API,否则您将无法在使用APICamera的旧版相机的某些设备上获得全高清分辨率camera2


推荐阅读