2012-02-27 79 views
1

有没有什么办法从iPhone相机获得对焦值并具有自动对焦功能?iOS相机对焦值

我想使用此数据来计算从iPhone到焦点对象的距离。

回答

2

很明显,这是一个老问题,但由于iOS8以后有一个选项可以获得“镜头价值”,它应该出现在这里。

从iOS8开始,您可以通过键值观察lensPosition获得镜头的焦点值。它是类的一个属性,它是AVFoundation框架的一部分。

所以在设置的观测相机类的地方:

// Assuming _device is an object of the `AVCaptureDevice` class 
[_device addObserver:self forKeyPath:@"lensPosition" options:NSKeyValueObservingOptionNew context:nil]; 

而且在类,你作为观察者:

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { 
    if ([keyPath isEqualToString:@"lensPosition"]) { 
     NSLog(@"change: %@", change); 
     NSLog(@"lens position: %f", [change[@"new"] floatValue]); 
    } 
} 

镜头的位置将显示为从标值0到1. 也可以手动设置镜头位置。您可以在Apple文档中找到有关managing the lens position的更多信息。

最后与所有key-value observer一样,不要忘记删除观察者。

注意:镜头是设备中的机械部件,通过弹簧移动镜头进行对焦。所以值根据设备和情况而不同。

2

我不认为有这样的事情作为重点值。

+1

澄清:显然存在这样一个焦点值,它存储在相机板载控制器晶圆的内部存储器中。但@Oscar是正确的,这个数字没有被Cocoa Touch公开。我不知道一个越狱的iPhone是否可以访问价值。 – AlcubierreDrive 2012-04-30 07:52:45