第47讲 Android Camera2 API AWB自动白平衡实战

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

  1. 自动白平衡实战
  2. 手动白平衡实战

视频在线观看:

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

– 微信公众号:

 

自动白平衡实战

设置AWB Mode

PopupView#switchToWhiteBalance
|--> CameraController2#setWhiteBalance
|----> CameraSettings#setWhiteBalance

AWB Lock

MainActivity#clickedWhiteBalanceLock
|--> Preview#toggleWhiteBalanceLock
|----> CameraController2#setAutoWhiteBalanceLock

手动白平衡实战

判断是否支持Manual WB

  • Available AWB Modes里面有OFF

  • 支持manual post processing capability

色温转RGGB Gain公式

  • https://tannerhelland.com/2012/09/18/convert-temperature-rgb-algorithm-code.html

设置R/G/B Gain

Preview#setWhiteBalanceTemperature
|--> CameraController2#setWhiteBalanceTemperature
|----> CameraSettings#setWhiteBalance
### 如何在 Android Studio 中使用 Camera2 API 实现白平衡和曝光补偿 #### 白平衡设置 为了调整白平衡,在构建 `CaptureRequest` 的时候,可以通过修改 `CONTROL_AWB_MODE` 参数来控制自动白平衡模式。常见的白平衡模式有: - 自动 (`AUTO`) - 日光 (`DAYLIGHT`) - 阴天 (`CLOUDY_DAYLIGHT`) - 荧光灯 (`FLUORESCENT`) - 烛光 (`INCANDESCENT`) 下面是一个简单的例子展示如何配置这些参数: ```java // 创建请求生成器 final CaptureRequest.Builder captureBuilder = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW); // 设置白平衡到日光模式 captureBuilder.set(CaptureRequest.CONTROL_AWB_MODE, CaptureRequest.CONTROL_AWB_MODE_DAYLIGHT); ``` 对于更精细的自定义需求,则可以直接设定红蓝增益(`COLOR_CORRECTION_GAINS`) 和变换矩阵(`COLOR_CORRECTION_TRANSFORM`) 来达到特定效果。 #### 曝光补偿调节 曝光补偿主要依赖于两个属性:一个是感光度ISO(`SENSITIVITY`) ,另一个是曝光时间(`EXPOSURE_TIME`) 。通常情况下推荐优先改变 ISO 值而不是直接更改曝光时间,因为后者可能会影响帧率性能[^2]。 要实现曝光补偿功能,可以在初始化阶段获取当前支持的最大最小范围,并据此计算出合适的增量步长用于后续调整。这里给出一段示范代码片段说明这一过程: ```java Range<Integer> sensitivityRange = characteristics.get(CameraCharacteristics.SENSOR_INFO_SENSITIVITY_RANGE); int minIso = sensitivityRange.getLower(); int maxIso = sensitivityRange.getUpper(); float isoStepSize = (maxIso - minIso) / 10f; // 将整个区间分为十份作为每次变化量 // 应用新的 ISO 值至捕获请求中 captureBuilder.set(CaptureRequest.SENSITITY, Math.round(currentIsoValue)); ``` 需要注意的是,不同设备之间可能存在差异,因此建议开发者们务必查阅官方文档并测试目标硬件特性以确保最佳兼容性和用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

deepinout_camera

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值