根据Android-API-Call" getFocalLength()" Nexus 4的焦距为4.6 mm。以及Google搜索的最多结果。
根据http://www.devicespecifications.com/de/model/73c42796,焦距为3.51 mm
根据我自己的计算方法,焦距应在3.3到3.4毫米之间。如果您考虑由于像素中对象的高度而导致的某些不准确,则3.51可能是有效值。
距离(mm)=(焦距* realHeightOfObject)/(pixelHeightOfObjectInImage * physicalPixelSize)
这个等式可以在博士论文中找到:http://hal.archives-ouvertes.fr/pastel-00802707/(第121页)。它适用于传感器芯片的最高分辨率。
所以它似乎是API-Call" getFocalLength()"的结果。 Nexus 4不正确,也可能适用于其他设备!这会影响您使用此API-Call执行的所有操作。任何人都面临同样的问题,或者我错过了什么?
编辑:
我使用Galaxy S3进行了相同的计算,返回的焦距为3.7 mm,这个结果似乎是有效的。
刚刚制作了一个示例应用,以检查getFocalLength()的结果是否随焦点而变化。不是这种情况。它总是返回4.6。同样在我的图像的exif数据中,焦距始终为4.6。
答案 0 :(得分:0)
手机相机设备具有固定焦距。 focus()改变图像距离(CDD表面和凸透镜之间)。由于您想要聚焦的物体的输入光线可能没有平行,因此焦点将移出原始的固定焦距