【发布时间】:2016-09-20 17:24:37
【问题描述】:
我正在android上使用opencv库开发应用程序,默认相机类JavaCameraView使用已弃用的库android.hardware.Camera
我想手动控制曝光级别并禁用相机自动曝光。
我发现禁用它的唯一方法是将 setAutoExposureLock 设置为 true,但它也会使 setExposureCompensation没用。
此外,如果我使用 setExposureCompensation(int value) 修改它,即使在自动曝光模式下,getExposureCompensation() 总是返回 0 它返回我设置的值,但是相机预览还是一样的。
我发现将多次setExposureCompensation设置为最大工作,或多或少,它会慢慢将相机预览曝光更改为最大曝光......但它没有任何意义。
代码如下:
Camera.Parameters parameters = mCamera.getParameters();
parameters.setAutoExposureLock(false);
parameters.setExposureCompensation(parameters.getMaxExposureCompensation());
mCamera.setParameters(parameters);
parameters = mCamera.getParameters();
parameters.setAutoExposureLock(true);
mCamera.setParameters(parameters);
顺便说一下,我的设备是 Moto G (Android 6.0),曝光补偿级别从 -12 到 12,曝光步长 0.166667。
我希望能够进行特定级别的曝光。
【问题讨论】: