有什么办法可以从具有自动对焦功能的 iPhone 相机中获取焦点值吗?
我想使用这些数据来计算 iPhone 到焦点对象的距离。
显然这是一个老问题,但由于自 iOS8 以来有一个获取“镜头值”的选项,它应该出现在这里。
从iOS 8开始你可以通过键值观察来获取镜头的焦点值lensPosition
。它是AVCaptureDevice
类是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 之间的标量值。
您也可以手动设置镜头位置。您可以了解更多有关管理镜头位置在苹果文档中。
最后和所有人一样键值观察者不要忘记删除观察者。
注:镜头是设备中的机械部件,对焦是通过弹簧移动镜头来完成的。因此,值会根据设备和情况而有所不同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)