Android で OpenCV 2.4.9 を使用して、色付きのオブジェクトを追跡しています。トラッキングはうまく機能しますが、オート ホワイト バランスが作動してフレームの色温度を再調整すると、機能しなくなることがあります。
ゴール
自動ホワイト バランス機能を無効またはロックする
-
試みられた解決策
Auto White Balance を無効にするための CameraBridgeViewBase オブジェクト (Sample OpenCV プロジェクトの mOpenCvCameraView) にはオプションがないようです。ただし、Android Camera オブジェクトの AWB を無効にするオプションがあります。
Camera mCamera = Camera.open( 1 );
Camera.Parameters params = mCamera.getParameters();
params.setAutoWhiteBalanceLock(true);
mCamera.setParameters(params);
以下のように、Camera オブジェクトで Auto White Balance Lock を設定してから、CameraBridgeViewBase オブジェクトと CvCameraViewListener で通常どおりのビジネスを再開しようとしました。
Camera mCamera set parameters like above code block ^
mOpenCvCameraView.setCvCameraViewListener(this);
...
public Mat onCameraFrame(CvCameraViewFrame inputFrame) { ... }
しかし、mCamera に設定されたパラメーターは CvCameraViewFrames に固執していないようで、カメラは自動ホワイト バランスを維持します。
質問
CvCameraViewListener フレームの Camera オブジェクト パラメータを「固定」するにはどうすればよいですか?