我需要知道手机的摄像头的视野,使一个增强现实应用程序,计算在哪里我必须写在相机上查看位于屏幕的正确坐标上的城市的兴趣点的GPS的名称,指向兴趣点.例如:距离5米:6米(从左到右FOV)距离10米:12米(从左到右FOV)如何计算?
whitzsjs1#
我认为你永远不会匹配每个设备的FOV定义。(比较this answer for iPhone。)使用Android时,每个设备都是不同的。拿着你的设备,做数学运算(或从其他任何地方获取结果),然后自己决定选择一个合理的FOVAngular 。也许您可以考虑使用Camera.Parameters.getSupportedPictureSizes()来获取摄像头比例,但这应该是您所能做的全部。
68de4m5k2#
这个问题很老了,但我遇到了类似的问题,我认为这里提到的解决方案很合理,至少它对我有效:
fov = 2 * atan2(cropW * sensorW / (2 * zoomRatio * activeArrayW), focalLength)
字符串可以通过java或本机代码通过相机管理器访问透镜信息(焦距,物理尺寸)。在我的情况下,我使用ACameraMetadata_getConstEntry和ACAMERA_LENS_INFO_AVAILABLE_FOCAL_LENGTHS和ACAMERA_SENSOR_INFO_PHYSICAL_SIZE参数收集必要的值。我希望它可以帮助别人。
ACameraMetadata_getConstEntry
ACAMERA_LENS_INFO_AVAILABLE_FOCAL_LENGTHS
ACAMERA_SENSOR_INFO_PHYSICAL_SIZE
2条答案
按热度按时间whitzsjs1#
我认为你永远不会匹配每个设备的FOV定义。(比较this answer for iPhone。)
使用Android时,每个设备都是不同的。拿着你的设备,做数学运算(或从其他任何地方获取结果),然后自己决定选择一个合理的FOVAngular 。
也许您可以考虑使用Camera.Parameters.getSupportedPictureSizes()来获取摄像头比例,但这应该是您所能做的全部。
68de4m5k2#
这个问题很老了,但我遇到了类似的问题,我认为这里提到的解决方案很合理,至少它对我有效:
字符串
可以通过java或本机代码通过相机管理器访问透镜信息(焦距,物理尺寸)。在我的情况下,我使用
ACameraMetadata_getConstEntry
和ACAMERA_LENS_INFO_AVAILABLE_FOCAL_LENGTHS
和ACAMERA_SENSOR_INFO_PHYSICAL_SIZE
参数收集必要的值。我希望它可以帮助别人。