如何解决Android CameraCharacteristics.LENS_INFO_AVAILABLE_FOCAL_LENGTHS 不起作用?
谁能解释一下 LENS_INFO_AVAILABLE_FOCAL_LENGTHS 是如何工作的?
文档说:
此相机设备支持的 android.lens.focalLength 焦距列表。
如果不支持光学变焦,此列表将仅包含与设备固定焦距对应的单个值。否则,此列表将按升序包含相机设备支持的每个焦距。
单位:毫米
最后一行表示输出应该是我手机相机焦距的浮点数,以毫米为单位,但控制台将第一个值打印为:
D/焦距:3.95
小于制造商显示的手机焦距:
摩托罗拉 Moto G6 规格。
光圈 f/1.8。
焦距 29 毫米。
我做错了吗? 我正在使用 CameraCharacteristics.get(..) 来检索该值
解决方法
我想我解决了。我正在回答我自己的问题,以防有人像我一样迷路。
这里的问题是 CameraCharacteristics.LENS_INFO_AVAILABLE_FOCAL_LENGTHS 返回您相机的真实焦距,手机的小镜头的焦距只有几毫米,但这不是您在拍照时看到的。
这里的关键是获得有效焦距,它是通过将物理 FL 乘以传感器尺寸而获得的。后者可以通过以下方式获得:
相机特性.SENSOR_INFO_PHYSICAL_SIZE
并取这些值的斜边
因此您希望手机的有效焦距为:
EFL = FL * 尺寸
现在我得到了更可靠的 25 毫米焦距值
(更多信息位于 Anton Gorlin Photography
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。