我正在编写一个应用程序,需要知道iOS摄像机的像素的角度尺寸,在虚拟无限远处使用图像平面对场景进行成像。为了做到这一点,我需要知道相机的焦距和相机像素的大小。我还希望这个应用程序能够在多个iOS设备上运行,并支持尚未发布的未来iOS设备。所以我希望能够从iOS设备本身获取所需的信息。
我已经能够在图像的EXIF元数据中找到镜头的真实物理焦距,但是我无法在EXIF或#34; makerapple"中找到任何字段。元数据告诉我像素大小是什么。
首先,我尝试使用在图像元数据中找到的有效35mm焦距和相当于35mm照片的图像尺寸,并除以图像宽度中的线性像素数,以确定35mm有效像素大小。但iOS设备的图像宽高比从未与35mm胶片的宽高比完全匹配,我从这些值计算出的有效像素大小约为3%。我通过拍摄具有已知尺寸的场景的图像并将实际角度距离与使用上述技术计算的角度进行比较来验证这一点。这对于我的应用程序正常工作来说太大了。
根据我用于测试的一个特定iPhone设备的拆解报告,我能够获得CMOS传感器的实际像素大小。使用从EXIF获得的相机的焦距,我能够计算出与我的测量图像的实际尺寸一致的角度像素尺寸,略好于1%。这足以让我的应用程序可以正常工作。但是,如果此数据未存储在设备本身的某个位置且应用程序可访问,则我看到的唯一其他选择是生成具有每个设备的维度的自己的数据库,并且每次发布新设备时都必须更新该数据库。这似乎是一个相当痛苦的解决方案,可能超出了我的资源支持范围。
任何人都可以帮忙解释一下,如果我需要的信息存储在设备的某个地方,请告诉我吗?