Значение фокуса камеры iOS

Есть ли способ получить значение фокуса с камеры iPhone с автофокусом?

Я хочу использовать эти данные для расчета расстояния от iPhone до объекта в фокусе.


person BartoNaz    schedule 27.02.2012    source источник


Ответы (2)


Очевидно, что это старый вопрос, но поскольку есть возможность получить «значение линзы», начиная с iOS8, оно должно появиться здесь.

Начиная с iOS8 вы можете получить значение фокуса от объектива, соблюдая ключ-значение 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. Также вы можете установить положение объектива вручную. Вы можете узнать больше о управление положением объектива в документации Apple.

Наконец, как и во всех обозреватель ключ-значение не забудьте удалить наблюдателя.

ПРИМЕЧАНИЕ. Объектив является механической частью устройства, и фокусировка осуществляется путем перемещения объектива с помощью пружины. Таким образом, значения различаются в зависимости от устройства и ситуации.

person limfinity    schedule 14.10.2015

Я не думаю, что существует такая вещь, как значение фокуса.

person Oscar Gomez    schedule 27.02.2012
comment
Уточняю: очевидно, что есть такая вещь, как значение фокуса, и оно хранится во внутренней памяти платы встроенного контроллера камеры. Но @Oscar прав в том, что этот номер не раскрывается Cocoa Touch. Я не знаю, может ли взломанный iPhone получить доступ к значению или нет. - person AlcubierreDrive; 30.04.2012