我正在使用Android + Opencv(opencv的新手),我正在使用实时对象检测(该对象非常靠近Android设备Camera),我注意到Android相机的autoFocus一直在修改我的帧(一种'放大'和'缩小'效果)使我更难跟踪对象。
我需要关闭“AUTO FOCUS”,因为在我的情况下,我的图像输入越模糊越好,我也需要关闭AutoWhiteBalance,或者设置为不同的值。
我想知道如何通过我的OpenCV CameraBridgeViewBase进行操作,以便我可以修改相机的Focus / WhiteBalance设置。
我试图找到一种方法来解决它,我注意到很多人都面临同样的问题。
在这里,在Stack Overflow上,找到一个与之合作过的人并找到克服这些问题的好方法的好地方。
答案 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();