在 OpenCV 中禁用自动白平衡 (Android)
Disable Auto-White Balance in OpenCV (Android)
我正在 Android 上使用 OpenCV 2.4.9 来跟踪彩色对象。跟踪效果很好,但当自动白平衡启动并重新调整画面的色温时有时会停止工作。
目标
禁用或锁定自动白平衡功能
-
尝试的解决方案
CameraBridgeViewBase 对象(示例 OpenCV 项目中的 mOpenCvCameraView)中似乎没有用于禁用自动白平衡的选项。但是,可以选择为 Android 相机对象禁用 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 帧制作相机对象参数 "stick"?
您好,我遇到了同样的问题。您需要在 OpenCV 源代码中设置参数 "JavaCameraView" 它应该在 OpenCV -> Java -> Org -> OpenCv -> Android 下的项目目录中。在我的文件中有一条评论说 /*Now set Camera Parameters */ and play your params.set... before the mCamera.setParameters(params)... 我希望这对您有所帮助。它似乎在我的主 activity 中也不起作用。
我正在 Android 上使用 OpenCV 2.4.9 来跟踪彩色对象。跟踪效果很好,但当自动白平衡启动并重新调整画面的色温时有时会停止工作。
目标
禁用或锁定自动白平衡功能
-
尝试的解决方案
CameraBridgeViewBase 对象(示例 OpenCV 项目中的 mOpenCvCameraView)中似乎没有用于禁用自动白平衡的选项。但是,可以选择为 Android 相机对象禁用 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 帧制作相机对象参数 "stick"?
您好,我遇到了同样的问题。您需要在 OpenCV 源代码中设置参数 "JavaCameraView" 它应该在 OpenCV -> Java -> Org -> OpenCv -> Android 下的项目目录中。在我的文件中有一条评论说 /*Now set Camera Parameters */ and play your params.set... before the mCamera.setParameters(params)... 我希望这对您有所帮助。它似乎在我的主 activity 中也不起作用。