如何在Android Studio中使用UVCCamera库进行图像调整(亮度、对比度)

3

我正在尝试构建一个应用程序,从USB摄像头中捕获图像,使用来自https://github.com/saki4510t/UVCCamera的UVCCamera库。但是,我不知道如何在这个库中实现图像调整设置(如亮度调整、对比度调整、白平衡)。我已经尝试使用seekbar来调整亮度设置,以下是我的代码:

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) 
    {
    }
};

如果我尝试更改SeekBar的值,该值已更改,但它不会更改亮度级别。有人能解释一下如何在此库中更改图像调整,或者给我关于我的代码的纠正吗?

感谢大家,祝你们有美好的一天 :)

1个回答

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();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接