有没有办法从 iPhone 相机自动对焦获得焦点值?
我想使用这些数据来计算从 iPhone 到焦点物体的距离。
显然这是一个老问题,但由于有一个选项来获得一个“lense 值”,因为 iOS8 它应该出现在这里。
自 iOS8 以来,您可以通过键值观察lensPosition
从镜头中获取焦点值。它是CaptureDevice
类的属性,该类是Foundation
框架的一部分。
所以在你的相机类的某个地方设置观察者:
// Assuming _device is an object of the `CaptureDevice` cl
[_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一样,不要忘记删除观察者。
注意:镜头是设备中的机械部件,通过弹簧移动镜头来进行对焦。因此,数值因设备和情况而异。
我不认为有这样的事情作为一个焦点值。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(76条)