【相机开发问题总结】曝光补偿ExposureCompensation未生效异常分析及解决

问题描述

做一款相机应用时,用户反馈相机预览界面太暗了,由于我们是嵌入式设备,没有手机那么高大上得闪光灯补光,因此只能考虑从软件层面提高界面亮度,还好找到了曝光补偿,但是开发过程中发现曝光补偿未生效,界面依然很黑

问题分析

什么事曝光补偿?曝光补偿是指,通过增加或者减少光线的摄入量,来提高或降低照片的亮度。

曝光补偿存在一定范围,比如-2至2,或者-3至3,单位为EV,可以理解为exposure value。

每增加或者降低1EV,光线的摄入量便增加或降低1倍。

android camera的曝光补偿为阶段性变化,每次变化1/2或1/3,该数量级被称为step。

android camera可以通过以下五个API,分别获取step,最大曝光补偿级数,最小曝光补偿级数,当前曝光补偿级数,设置曝光补偿级数。曝光补偿值=step * 曝光补偿级数。

(1)float getExposureCompensationStep()

(2)int getMinExposureCompensation()

(3)int getMaxExposureCompensation()

(4)int getExposureCompensation()

(5)void setExposureCompensation(int)

根据上述概念,我发现setExposureCompensation的值传递错误,当时是随便传值的

问题解决

先计算getMaxExposureCompensation*getExposureCompensationStep,支持最大的补偿级数,将其传递给底层

相关推荐
东方不败之鸭梨的测试笔记3 小时前
20250605车充安服务器受木马攻击导致服务不可用
bug
Htht1113 小时前
【Qt】之【Get√】【Bug】通过值捕获(或 const 引用捕获)传进 lambda,会默认复制成 const
数据库·bug
前端发现7 小时前
如何用 pnpm patch 给 element-plus 打补丁修复线上 bug(以 2.4.4 修复 PR#15197 为例)
bug
可乐鸡翅好好吃1 天前
通过BUG(prvIdleTask、pxTasksWaitingTerminatio不断跳转问题)了解空闲函数(prvIdleTask)和TCB
c语言·stm32·单片机·嵌入式硬件·bug·keil
神膘护体小月半1 天前
bug 记录 - 使用 el-dialog 的 before-close 的坑
前端·javascript·bug
顽强d石头1 天前
bug:undefined is not iterable (cannot read property Symbol(Symbol.iterator))
前端·bug
阿松のblog2 天前
opencv使用经典bug
人工智能·opencv·bug
学习啷个办2 天前
centos挂载目录满但实际未满引发系统宕机
bug
我们的五年4 天前
【Qt】Bug:findChildren找不到控件
开发语言·qt·bug
seiyaaa4 天前
Claude Opus solved my white whale bug today that I couldn‘t find in 4 years
bug