第46讲 Android Camera2 API AWB自动白平衡

您所在的位置:网站首页 goproapp设置白平衡 第46讲 Android Camera2 API AWB自动白平衡

第46讲 Android Camera2 API AWB自动白平衡

2024-02-01 23:31| 来源: 网络整理| 查看: 265

本讲是Android Camera专题系列的第46讲,我们介绍Android Camera2 API专题的AWB自动白平衡,包括如下内容:

为什么要做白平衡什么是自动白平衡Android Camera颜色处理流程AWB模式AWB LockAWB RegionAWB StateManual AWB

视频在线观看:

 极客笔记:极客笔记在线课程

加入知识星球与更多Camera同学交流 – 星球名称:深入浅出Android Camera – 星球ID: 17296815

– 微信公众号:

 

为什么要做白平衡

人眼:在不同的光源下,人眼看到的白色物体总是白色的 图像传感器:在不同光源下,白色物体成像在Sensor上是不一样的 因此需要把Sensor的RGB相应各乘以一个系数来使得RGB相等

R’ = R x R_Gain G’ = G x G_Gain B’ = B x B_Gain

使得 R’=G’=B’

什么是自动白平衡

自动白平衡 (Auto White Balance): 通过算法根据统计数据自动计算出R/G/B的Gain值

Android Camera颜色处理流程

ISP中的Demosaic是用来做什么的ISP中的CCM是用来做什么的 AWB模式

CaptureRequest#CONTROL_AWB_MODE,通过CameraCharacteristics#CONTROL_AWB_LOCK_AVAILABLE判断支持哪些Mode

CONTROL_AWB_MODE取值描述CONTROL_AWB_MODE_OFFAWB算法Disabled,App通过修改CCM和AWB Gain来手动控制白平衡CONTROL_AWB_MODE_AUTOAWB算法Enabled,白平衡由算法控制,App设置的CCM和AWB Gain会被忽略CONTROL_AWB_MODE_FLUORESCENTAWB算法Disabled,使用荧光灯作为假定的场景照明来调节白平衡,App设置的CCM和AWB Gain会被忽略,匹配CIE标准光源F2CONTROL_AWB_MODE_WARM_FLUORESCENTAWB算法Disabled,使用暖荧光灯作为假定的场景照明来调节白平衡,App设置的CCM和AWB Gain会被忽略,匹配CIE标准光源F4CONTROL_AWB_MODE_DAYLIGHTAWB算法Disabled,使用日光灯作为假定的场景照明来调节白平衡,App设置的CCM和AWB Gain会被忽略,匹配CIE标准光源D65CONTROL_AWB_MODE_CLOUDY_DAYLIGHTAWB算法Disabled,使用多云白天作为假定的场景照明来调节白平衡,App设置的CCM和AWB Gain会被忽略CONTROL_AWB_MODE_TWILIGHTAWB算法Disabled,使用黄昏作为假定的场景照明来调节白平衡,App设置的CCM和AWB Gain会被忽略CONTROL_AWB_MODE_SHADEAWB算法Disabled,使用阴影光作为假定的场景照明来调节白平衡,App设置的CCM和AWB Gain会被忽略 AWB Lock

判断是否支持

读取CameraCharacteristics#CONTROL_AWB_LOCK_AVAILABLE Capability为MANUAL_POST_PROCESSING 或 BURST_CAPTURE 的设备必须支持

控制AWB Lock

通过控制CaptureRequest#CONTROL_AWB_LOCK完成AWB Lock,设置为TRUE后意味着AWB算法的输出会固定在最新结果只有当AWB Mode为AUTO时才能Lock,其他模式不存在LockApp在Auto AWB和Manual AWB间切换时,如果发现有闪烁现象,可通过如下流程解决 AWB 模式运行Lock AWB从CaptureResult中等待Lock完成从CaptureResult中读取WB gain和CCM使能Manual WB并将step4读取到的CCM和WB Gain设置下去继续调整CCM或WB Gain,进入Manual WB流程 AWB Region

判断是否支持设置AWB Region

读取CameraCharacteristics#CONTROL_MAX_REGIONS_AWB大于0则表示支持控制AWB Region

设置AWB Region

通过CaptureRequest#CONTROL_AWB_REGIONS来设置,坐标系同AE/AF Region AWB State

读取CaptureResult#CONTROL_AWB_STATE

android.control.awbMode != AWB_MODE_AUTO

android.control.awbMode == AWB_MODE_AUTO

Manual AWB

手动白平衡 – 设置Gain

需要将android.control.awbMode设置为OFF,android.colorCorrection.mode设置为TRANSFORM_MATRIX通过设置 android.colorCorrection.gains 来控制WB Gain: [R_gain, G_even_gain, G_odd_gain, B_gain], gain的取值范围[1.0, 3.0]

手动白平衡 – 设置CCM

需要将android.control.awbMode设置为OFF,android.colorCorrection.mode设置为TRANSFORM_MATRIX通过设置android.colorCorrection.transform来控制CCM,3×3有理数矩阵,按行主顺序排列[ I0 I1 I2 I3 I4 I5 I6 I7 I8 ],每个元素的有效范围因不同的设备有差异,但[-1.5,3.0]范围内的值保证不会被裁剪。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3