首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安卓相机setExposureCompensation(int值)无法按预期工作

安卓相机setExposureCompensation(int值)无法按预期工作
EN

Stack Overflow用户
提问于 2016-09-20 17:24:37
回答 2查看 2.1K关注 0票数 0

我正在使用android上的opencv库开发一个应用程序,默认的照相机类JavaCameraView使用的是不推荐的库android.hardware.Camera

我想控制曝光水平手动和禁用相机自动曝光。

我发现禁用它的唯一方法是将setAutoExposureLock设置为true,但它也使setExposureCompensation变得无用。

此外,即使在自动曝光模式下,getExposureCompensation() 也总是返回,如果用setExposureCompensation(int值)对其进行修改,则返回设置的值,但摄像机预览仍然相同。

我发现将setExposureCompensation 设置几次到其最大作品,或多或少,它会慢慢地将相机预览曝光更改为其最大曝光量.但这没有任何意义。

下面是代码:

代码语言:javascript
运行
复制
    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 (Android6.0),曝光补偿级别从-12到12,曝光步骤0.166667。

我希望能够提供一个特定的暴露水平。

EN

回答 2

Stack Overflow用户

发布于 2016-09-26 12:41:51

我找到了更好的解决办法。

将setAutoExposureLock保留为false,并在每个onPreviewFrame()中设置公开很好。

代码语言:javascript
运行
复制
Camera.Parameters parameters = mCamera.getParameters();
parameters.setExposureCompensation(exposure);
mCamera.setParameters(parameters);

我希望这对处于同样情况的人有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2019-07-01 08:31:40

我找到了一种更好的方法来设置曝光:

代码语言:javascript
运行
复制
Camera.Parameters params = mCamera.getParameters();
params.setExposureCompensation(-10);
params.setAutoExposureLock(true);
mCamera.setParameters(params);

我先将setExposureCompensation()设置为true,然后将setAutoExposureLock设置为true,然后将代码放在initializeCamera()中,不需要将其放在onPreviewFrame()中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39600263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档