如何在Android Studio上的UVCCamera库中使用图像调整(亮度,对比度)

时间:2016-12-27 03:15:11

标签: java android android-ndk usb-otg

我正在尝试使用来自https://github.com/saki4510t/UVCCamera的UVCCamera构建应用程序以从USB相机捕获图片 但是,我不知道,如何在此库中实现图像调整设置(如调整亮度,对比度,白平衡)。 我尝试使用搜索栏来调整亮度设置,这是我的代码:

final UVCCamera camera = new UVCCamera();

private final OnSeekBarChangeListener mSeekBarChangeListener = new OnSeekBarChangeListener()
{
    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) 
    {
        if (mCameraHandler.isOpened()) //When USB Camera, Connected
        {       
            camera.setBrightness(progress);
        }
    }
    @Override
    public void onStartTrackingTouch(SeekBar seekBar) 
    {
    }
    @Override
    public void onStopTrackingTouch(SeekBar seekBar) 
    {
    }
};

并且,如果我尝试更改搜索条的值,则值已更改,但它不会更改亮度级别。 任何人都可以解释一下,如何更改此库中的图像调整或者让我更正我的代码? 任何答案都是我的答案

关心,并且每个人都过得愉快:)

1 个答案:

答案 0 :(得分:1)

我从新版本的库(libuvccamera,usbCameraCommon)更新了我的项目中的文件,并修改了示例8中的代码。我给出了一个示例代码。这是我得到的代码示例。

    private SeekBar.OnSeekBarChangeListener seekBarChangeListener =
            new SeekBar.OnSeekBarChangeListener() {
                @Override
                public void onProgressChanged(SeekBar seekBar, int progress,
                                              boolean fromUser) {
                    // TODO Auto-generated method stub
                    br = progress;

                }

                @Override
                public void onStartTrackingTouch(SeekBar seekBar) {
                    // TODO Auto-generated method stub
                }

                @Override
                public void onStopTrackingTouch(SeekBar seekBar) {
                    if (isActive()) {

                                setValue(seekBar.getProgress());

                        }
                    }
                    // TODO Auto-generated method stub
                };

    private int setValue( final int value) {
            return mCameraHandler != null ? mCameraHandler.setValue(value) : 0;
        }
private boolean isActive() {
        return mCameraHandler != null && mCameraHandler.isOpened();
    }

编辑AbstractUVCCameraHandler.java

public int setValue( final int value) {
        checkReleased();
        final CameraThread thread = mWeakThread.get();
        final UVCCamera camera = thread != null ? thread.mUVCCamera : null;
        if (camera != null) {

                camera.setBrightness(value);
                return camera.getBrightness();
        }
    throw new IllegalStateException();
}