2012-02-27 70 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