小编Hum*_*tda的帖子

如何计算FOV?

初始背景

我正在开发一个增强现实应用程序位置,我需要获得视野[FOV](我只是在方向改变时更新值,所以我正在寻找一种方法,当我调用它时可以得到这个值)

目标是使"程度统治者"与现实相关,如下所示: Degree Ruler  -  AR App

我已经AVCaptureSession用来显示相机流; 以及与a相连的路径CAShapeLayer来绘制标尺.这工作得很好,但现在我必须使用视场值将我的元素放在正确的位置(例如,选择160°和170°之间的正确空间!).

实际上,我用这些来源硬编码这些值:https://stackoverflow.com/a/3594424/3198096(特别感谢@ hotpaw2!)但我不确定它们是完全精确的,这不是处理iPhone 5等我无法从官方渠道获取价值(Apple!),但有一个链接显示我认为我需要的所有iDevice的值(4,4S,5,5S):AnandTech | 关于iphone 5s相机改进的一些想法.

注意:经过个人测试和其他在线研究,我很确定这些值是不准确的!这也迫使我使用外部库来检查我使用哪种型号的iPhone来手动初始化我的FOV ......我必须检查所有支持设备的值.

我更喜欢"代码解决方案"!

看完这篇文章后:iPhone:实时视频颜色信息,焦距,光圈?,我试图exif data从建议的AVCaptureStillImageOutput 获得.之后,我可以从exif数据中读取焦距,然后通过公式计算水平和垂直视野!(或者可以直接获得如下所示的FOV:http://www.brianklug.org/2011/11/a-quick-analysis-of-exif-data-from-apples-iphone-4s-camera-samples/ - - 注意:经过一定数量的更新后,似乎我们无法直接从exif获取视野!)


实际点

来自:http://iphonedevsdk.com/forum/iphone-sdk-development/112225-camera-app-working-well-on-3gs-but-not-on-4s.html修改后的EXIF数据无法保存正确

这是我正在使用的代码:

AVCaptureDevice* camera = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if (camera != nil)
{
    captureSession = [[AVCaptureSession alloc] init];

    AVCaptureDeviceInput *newVideoInput = [[AVCaptureDeviceInput alloc] initWithDevice:camera error:nil];

    [captureSession addInput:newVideoInput];

    captureLayer = [[AVCaptureVideoPreviewLayer alloc] …
Run Code Online (Sandbox Code Playgroud)

iphone camera fieldofview ios avcapturesession

26
推荐指数
1
解决办法
9042
查看次数

标签 统计

avcapturesession ×1

camera ×1

fieldofview ×1

ios ×1

iphone ×1