无法为 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
。这将立即应用效果。
我正在尝试更改连接到 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
。这将立即应用效果。