【问题标题】:The angle of view differs at the same ratio of resolution on Camera2 APICamera2 API 上相同的分辨率比例下视角不同
【发布时间】:2021-05-04 05:10:56
【问题描述】:

我正在使用 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) enter image description here

(1920x1080) enter image description here

【问题讨论】:

  • 请注意,两张图片都是 1280×720。这意味着 1920×1080 出现问题了。也许这款手机不支持这样的图片分辨率(但谎言确实如此)。检查您是否可以从内置相机应用程序中获取 1920×1080 jpeg。
  • 该图像是捕获的图像的预览。内置的相机应用程序可以正确预览 1920x1080 的图像,这可能不是 Camera2 API 内部的。值得怀疑的是,该设备的分辨率为 1280x720。这似乎是一个问题,因为设备本身的分辨率低于 1920x1080。非常感谢您的反馈。
  • 好的,这就解释了i.stack.imgur.com/dsBPv.jpg的失真和分辨率。 1280×720的显示分辨率并不意味着分辨率更高的相机图像一定会失真。
  • 那么问题出在哪里? Google 的示例应用程序也出现了同样的问题。 (github.com/googlesamples/android-Camera2Video)
  • Galaxy J7(2016 版,2017 版)是有限级别。看来硬件问题...

标签: android android-camera2 hal


【解决方案1】:

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

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

因此,在某些配备旧版级别摄像头的设备上,您只能使用旧版 Camera API 获得全高清预览,因此它不是比率而是分辨率本身

也在这里Android Camera2 Output sizes

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

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

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

【讨论】:

    猜你喜欢
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-05
    相关资源
    最近更新 更多