gpt4 book ai didi

android - 如何检查给定的相机是普通相机还是广角相机?

转载 作者:搜寻专家 更新时间:2023-11-01 09:29:57 24 4
gpt4 key购买 nike

有什么方法可以检测给定的相机是普通相机还是广角相机?

对于 Oppo、Vivo、LG 等设备,他们使用 Camera2 API 提供对每个相机的访问。但是如何知道哪个摄像头是主摄像头,哪个摄像头是广角摄像头呢?

最佳答案

您可以计算每个摄像头的视野,并确定它是否足够宽以进行计数。

以度为单位的水平视野的标准公式是:

FOV = 2 * arctan(sensor_width / (2 * lens_focal_length) )

对于垂直 FOV,使用传感器高度。

从 camera2 API 中,焦距列在 AVAILABLE_FOCAL_LENGTHS 中和 PHYSICAL_SIZE 中的传感器物理尺寸.

如果您想完全准确,还应该考虑 active array ,这是 physical pixel array 的子集实际用于生成图像。但这通常只是数千个像素中的几行。但是如果你想考虑它,你会想要这样的东西:

active_width = sensor_width * active_array_width / pixel_array_width

计算 FOV。此外,有时报告的 FOV 是对角线的,在这种情况下,您想要的传感器尺寸是

sensor_diagonal = sqrt(sensor_width^2 + sensor_height^2)

对于广角摄像头的定义并没有单一的定义,尤其是因为大多数移动设备摄像头的 FOV 范围已经在 65-75 度之间。

三星 S8 前置摄像头具有 80 度 FOV,三星称之为“广角自拍”,而后置摄像头具有 77 度 FOV。但不确定这些是水平视场还是对角线视场。

关于android - 如何检查给定的相机是普通相机还是广角相机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47929422/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com