1

我正在使用 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 对象参数“粘住”?

4

1 回答 1

3

嗨,我有同样的问题。您需要在 OpenCV 源代码“JavaCameraView”中设置参数,它应该在您的项目目录中的 OpenCV -> Java -> Org -> OpenCv -> Android 下。在我的文件中有一条评论说 /*Now set Camera Parameters */ and play your params.set.... before the mCamera.setParameters(params).... 我希望这会有所帮助。它似乎也不适用于我的主要活动。

于 2015-09-25T06:56:56.163 回答