iPhone SDK - 获取/计算相机视野(FOV)(增强现实)

时间:2010-09-04 16:21:44

标签: iphone camera augmented-reality fieldofview

有没有办法通过调用API找出或计算iPhone相机的视野(FOV)?或者你需要自己亲身体验一下吗?

如果无法使用API​​获取或计算它,而是必须将其硬编码到应用程序中,那么找出应用程序运行的设备类型的最佳方法是什么?不同的设备具有不同的FOV(iPhone 4具有比以前版本更大的FOV。)另外,每个设备的FOV究竟有多大?

我问,因为我正在考虑制作一个增强现实应用程序,并且知道FOV是必不可少的。

4 个答案:

答案 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。