如何使用OpenCV在Android Camera上禁用/修改AutoFocus和AutoWhiteBalance

时间:2015-08-14 21:19:44

标签: android opencv focus android-camera autofocus

我正在使用Android + Opencv(opencv的新手),我正在使用实时对象检测(该对象非常靠近Android设备Camera),我注意到Android相机的autoFocus一直在修改我的帧(一种'放大'和'缩小'效果)使我更难跟踪对象。

我需要关闭“AUTO FOCUS”,因为在我的情况下,我的图像输入越模糊越好,我也需要关闭AutoWhiteBalance,或者设置为不同的值。

我想知道如何通过我的OpenCV CameraBridgeViewBase进行操作,以便我可以修改相机的Focus / WhiteBalance设置。

我试图找到一种方法来解决它,我注意到很多人都面临同样的问题。

在这里,在Stack Overflow上,找到一个与之合作过的人并找到克服这些问题的好方法的好地方。

1 个答案:

答案 0 :(得分:2)

创建自己的javacameraview子类 public class MyJavaCameraView extends JavaCameraView { 您可以访问mCamera的位置; 使用您感兴趣的方法添加任何相机访问权限 例如

// Setup the camera
public void setFlashMode(boolean flashLightON) {
    Camera camera = mCamera;
    if (camera != null) {
        Camera.Parameters params = camera.getParameters();
                params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
            camera.setParameters(params);

并将此新类用作主要活动的一部分

    //force java camera
    mOpenCvCameraView = (MyJavaCameraView) findViewById(R.id.activity_surface_view);
    mOpenCvCameraView.setVisibility(SurfaceView.VISIBLE);
    mOpenCvCameraView.setCvCameraViewListener(this);
    mOpenCvCameraView.enableView();