首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓CameraCharacteristics.LENS_INFO_AVAILABLE_FOCAL_LENGTHS不工作吗?

安卓CameraCharacteristics.LENS_INFO_AVAILABLE_FOCAL_LENGTHS不工作吗?
EN

Stack Overflow用户
提问于 2021-04-10 01:43:50
回答 2查看 356关注 0票数 1

有人能解释一下LENS_INFO_AVAILABLE_FOCAL_LENGTHS是如何工作的吗?

文件上说:

此相机设备支持的android.lens.focalLength焦距列表。如果不支持光学变焦,此列表将只包含与设备的固定焦距相对应的单个值。否则,此列表将包括相机设备支持的每个焦距,按升序排列。 单位:毫米

最后一行表示输出应该是以毫米为单位测量的手机相机焦距的浮动,但控制台将第一个值打印为:

D/焦距: 3.95

它小于制造商显示的手机焦距:

摩托罗拉Moto G6规格。

孔径f/1.8。焦距29毫米

我做错了什么吗?我用的是CameraCharacteristics.get(.)检索该值

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-10 02:21:19

我想我解决了。我在回答我自己的问题,以防有人像我一样迷路。

这里的问题是,CameraCharacteristics.LENS_INFO_AVAILABLE_FOCAL_LENGTHS返回相机的真正焦距,手机的微小镜头有几米的焦距,但这不是你在拍照时看到的。

这里的关键是获得有效焦距,它是通过将物理FL乘以传感器大小得到的。后者可通过以下方式获得:

CameraCharacteristics.SENSOR_INFO_PHYSICAL_SIZE

取这些值的低音值

所以你期望你手机的有效焦距是:

EFL = FL *尺寸

现在我得到了一个更可靠的值,焦距为25毫米。

(更多信息见安东·戈林摄影

票数 1
EN

Stack Overflow用户

发布于 2022-03-02 10:22:23

我也遇到了这个问题,你的回答很有帮助。不过,我想补充一点小小的更正,公式实际上是:

EFL = FL x CF

CF =作物因子,它实际上不是传感器的大小,而是43.27和传感器大小之间的比率:

作物因子是我们计算的传感器的全帧对角线与对角线的比值。来源:安东·戈林摄影

在这种情况下,最后的公式是:

EFL = FL * (43.27 /大小)

FL = LENS_INFO_AVAILABLE_FOCAL_LENGTHS返回的焦距

SIZE = sqrt(sensorWidth * sensorWidth + sensorHeight * sensorHeight)

你可以像你说的那样使用SENSOR_INFO_PHYSICAL_SIZE获得传感器的宽度和高度。

我希望这能帮到你

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67030064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档