2012-02-27 29 views
1

iPhoneのカメラからフォーカス値を取得する方法はありますか?iOSカメラのフォーカス値

このデータを使用して、iPhoneからフォーカスされたオブジェクトまでの距離を計算します。

答えて

2

明らかにこれは古い質問ですが、iOS8以降は「lense値」を取得するオプションがあるため、ここに表示する必要があります。

iOS8以降では、キー値を観察してlenseからフォーカス値を得ることができます。lensPositionAVFoundationフレームワークの一部であるAVCaptureDeviceクラスのプロパティです。

だから、どこかお使いのカメラのクラスのオブザーバセット:

// 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 レンズの位置を手動で設定することもできます。 managing the lens positionについての詳細は、Appleのドキュメントをご覧ください。

最後に、すべてkey-value observerのように、オブザーバーを削除することを忘れないでください。

注:レンズはデバイス内の機械部品であり、レンズをバネで動かすことでフォーカシングが行われます。そのため、値はデバイスや状況によって異なります。

2

フォーカス値としてはそんなものはないと思います。

+1

明確にするために、明らかにフォーカス値などがあり、カメラのオンボードコントローラウェーハの内部メモリに保存されています。しかし、@Oscarはその数がCocoa Touchによって公開されていないことは間違いありません。 jailbroken iPhoneが価値にアクセスできるかどうかはわかりません。 – AlcubierreDrive

関連する問題