我可以轻松获得焦距,但我无法找到35mm等效焦距。
如果有人知道如何找到35mm等效焦距,请告诉我。我尝试使用ex if接口和硬件相机。
答案 0 :(得分:2)
35毫米当量将是您获得的焦距乘以一定数量,称为作物因子。对于不同的制造商甚至型号,这个因素非常不同。例如,对于许多尼康数码单反相机,它是1.5;对于许多佳能数码单反相机来说它是1.6;对于Apple iPhone 5来说它是6.99,对于三星Galaxy S3来说它是7.6,依此类推。
据我所知,Android不提供API来确定设备相机的裁剪因素。
你可以尝试使用的一个技巧。使用设备的相机拍照后,某些设备会填充FocalLengthIn35mmFilm
exif标签 - 因此您可以尝试使用此技术。但并非所有手机都能这样做,例如,我的华为没有。
其他一些设备将为Focal Length
填充两个字段 - 第一个是使用的实际焦距,第二个是35毫米等效字段。并非所有人都这样做。同样的华为手机没有,但是我的iPhone 5没有。
总而言之,从设备上获得的焦距来看,无法保证计算出35mm的等效值。
答案 1 :(得分:1)
您应该能够通过首先获取传感器的物理尺寸,然后使用该尺寸将焦距转换为等效的35mm来进行计算:
float sensorWidth = cameraCharacteristics.get(CameraCharacteristics.SENSOR_INFO_PHYSICAL_SIZE).getWidth();
float focalLength = cameraCharacteristics.get(CameraCharacteristics.LENS_INFO_AVAILABLE_FOCAL_LENGTHS)[0];
float focalLengthIn35mm = (36 * focalLength) / sensorWidth;