2016-09-20 13 views
0

私はAndroid上でOpenCVのライブラリを使用してアプリケーションを開発しています、デフォルトのカメラのクラスJavaCameraViewは、私がにしたい AndroidのカメラsetExposureCompensation(int値)期待通りに動作しない

android.hardware.Camera

非推奨のライブラリを使用しています露出レベルを手動で制御するとカメラの自動露出を無効にします。

私はそれがsetAutoExposureLockに設定されたが、それはまたsetExposureCompensation無用になり無効にすることが分かっ唯一の方法。

また、getExposureCompensation()Iは、setExposureCompensation(int値)とそれを変更した場合それは私が設定された値を返すが、カメラプレビューが依然として同じであっても、自動露出モードで常に戻り、 。

私はその最大作品数回setExposureCompensationを設定することが判明、多かれ少なかれ、それはゆっくりとその最大露出にカメラのプレビューの露出を変更...しかし、それはどんな意味がありません。

は、ここでは、コードです:ところで

Camera.Parameters parameters = mCamera.getParameters(); 
    parameters.setAutoExposureLock(false); 
    parameters.setExposureCompensation(parameters.getMaxExposureCompensation()); 
    mCamera.setParameters(parameters); 

    parameters = mCamera.getParameters(); 
    parameters.setAutoExposureLock(true); 
    mCamera.setParameters(parameters); 

、私のデバイスはモトG(アンドロイド6.0)で、露出補正レベルは-12から12に行き、露光工程0.166667。

私は、特定のレベルの露出を可能にしたいと考えています。

答えて

0

私はより良い解決策を見つけました。

falseにsetAutoExposureLockを残し、正常に動作しますごとonPreviewFrame()で露出を設定します。

Camera.Parameters parameters = mCamera.getParameters(); 
parameters.setExposureCompensation(exposure); 
mCamera.setParameters(parameters); 

これは、同じ状況の誰かに役立つことを願っています。

関連する問題