有没有办法通过调用API找出或计算iPhone相机的视野(FOV)?或者你需要自己亲身体验一下吗?
如果无法使用API获取或计算它,而是必须将其硬编码到应用程序中,那么找出应用程序运行的设备类型的最佳方法是什么?不同的设备具有不同的FOV(iPhone 4具有比以前版本更大的FOV。)另外,每个设备的FOV究竟有多大?
我问,因为我正在考虑制作一个增强现实应用程序,并且知道FOV是必不可少的。
答案 0 :(得分:4)
我拍了一张纸的照片,这张照片是我测量过的距离。 然后我查看了纸张大小与照片中图像的比例。
我的值是56厘米,你可以完全拍摄(即,它完全占据屏幕尺寸)一个约40厘米x 60厘米的物体
使用它我做了一些简单的触发并且到达: 垂直FOV:2 * atan(58.5 / 2 / 56.5) - > ~55度 水平FOV:2 * atan(21.5 / 2 / 56.5) - > 42度
答案 1 :(得分:2)
此answer使用一些数学和相机信息来确定值。
查看ARKit它的硬编码.7392弧度(42.35度)。当我研究AR时,我只是拿起手机摄像头,并在边缘上划出一些地标,然后测量角度。我对3GS的估计是景观为48度,纵向为39度。我估计iPhone 4在风景中是58,在纵向是48度。
在互联网上搜索似乎有各种各样的说法。这可能是由具有不同型号手机的人解释的。我没有从apple那里找到关于这个主题的官方信息来源。
如果我再次这样做,我会借用各种手机型号,并使用一个测量系统来对抗地平线上的地标。没有什么可以击败你自己衡量的硬数据。
我的估算方法如下:站在离墙10英尺的地方,看一下屏幕上的图像。注意图像左侧和右侧墙上的点并测量距离。然后使用三角法计算角度。如果a是距离墙壁的距离,o是沿墙壁测量的长度,那么tan(A)=(o / 2)/ a,这是角度的一半。
更新:我修正了一些不正确的计算并添加了iPhone 4以及我测量的方式。
答案 2 :(得分:1)
我在iPhone 3gs的长尺寸上得到47.1539度。
答案 3 :(得分:1)
您可以简单地问:
AVCaptureDevice *device = [...]
NSLog(@"FOV: %lf", device.activeFormat.videoFieldOfView);
记住这是水平FOV,现在很好,对于新手来说,你有ARKit。