在OpenCV(Android)中禁用自动白平衡

时间:2015-07-13 09:40:48

标签: android opencv android-camera opencv4android

我在Android上使用OpenCV 2.4.9来跟踪彩色对象。跟踪效果很好但有时在自动白平衡启动时停止工作并重新调整帧的色温。

目标

禁用或锁定自动白平衡功能

-

尝试解决方案

CameraBridgeViewBase对象(示例OpenCV项目中的mOpenCvCameraView)似乎没有选项可用于禁用自动白平衡。但是,可以选择禁用Android Camera对象的AWB。

Camera mCamera = Camera.open( 1 );
Camera.Parameters params = mCamera.getParameters();
params.setAutoWhiteBalanceLock(true);
mCamera.setParameters(params);

我一直在尝试使用Camera对象设置自动白平衡锁,然后像往常一样使用CameraBridgeViewBase对象和CvCameraViewListener恢复业务,如下所示。

Camera mCamera set parameters like above code block ^
mOpenCvCameraView.setCvCameraViewListener(this);
...
public Mat onCameraFrame(CvCameraViewFrame inputFrame) { ... }

但为mCamera设置的参数似乎不会粘在CvCameraViewFrames上,而且相机会保持自动白平衡。

问题

如何使CvCameraViewListener框架的Camera对象参数“粘住”?

1 个答案:

答案 0 :(得分:3)

嗨我有同样的问题。您需要在OpenCV源代码“JavaCameraView”中设置参数,它应该位于OpenCV下的项目目录中 - > Java - >组织 - > OpenCv - > Android系统。在我的文件中有一条评论说/ *现在设置摄像机参数* /并在mCamera.setParameters(params)之前播放你的params.set ....我希望这是有帮助的。它似乎也没有在我的主要活动中发挥作用。