无法为 UVCCamera(Android USB 相机)设置 Gamma 和 Hue

Cannot Set Gamma and Hue for UVCCamera (Android USB Camera)

我正在尝试更改连接到 Android phone 的 USB 相机在线预览的色相、对比度和伽玛属性。我正在使用 UVCCamera 库。使用相应方法设置上述属性对预览没有影响。请看下面的代码:

private SeekBar.OnSeekBarChangeListener mSeekbarChangeListener = new SeekBar.OnSeekBarChangeListener() {
    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
        Log.i(TAG, "onProgressChanged: " + progress);
        int step = 10;
        step = progress - mProgress;
        mProgress = progress;
        Log.i(TAG, "onProgressChanged: camera gamma: " + mUVCCamera.getGamma());
        mUVCCamera.setGamma(mUVCCamera.getGamma() + step);
        Log.i(TAG, "onProgressChanged: hue: " + mUVCCamera.getHue(100));
        mUVCCamera.setHue(mUVCCamera.getHue(100) + step);
    }

Logcat 显示 gamma 和 hue 值始终为 0。尽管我正在设置新值,但为什么会这样?

为了能够更改 UVCCamera 参数,您需要设置最小值和最大值以及特定参数(例如饱和度)的默认值。它是在 UVCCamera class 中完成的,如下所示:

protected int mSaturationMin = 0, mSaturationMax = 100, mSaturationDef = 0;

之后,您现在可以调用 API 中可用的方法来设置参数,如 setSaturation(int),但请务必在之后调用 updateCameraParams。这将立即应用效果。