You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Camera2 API在Google Pixel手机上手动白平衡失效问题排查

解决Pixel设备上Camera2手动白平衡无效的问题

针对你遇到的Pixel设备上COLOR_CORRECTION_GAINS不生效的问题,以下是几个关键排查和修复方向:

1. 显式设置CONTROL_MODE为OFF

尽管使用TEMPLATE_MANUAL模板,部分Pixel设备仍需要显式关闭自动控制模式,确保手动参数不会被系统自动流程覆盖:

captureRequestBuilder?.set(CaptureRequest.CONTROL_MODE, CaptureRequest.CONTROL_MODE_OFF)

2. 确认COLOR_CORRECTION_GAINS的取值范围

Pixel对RGBG增益的取值有严格限制,需先通过相机特性获取允许的范围,确保设置的增益值在有效区间内:

val characteristics = cameraManager.getCameraCharacteristics(cameraId)
val gainRange = characteristics.get(CameraCharacteristics.COLOR_CORRECTION_AVAILABLE_GAINS)
// 检查你的1.8f、1.3f、1.0f、2.0f是否处于[gainRange.lower, gainRange.upper]区间内

若超出范围,Pixel会自动截断或忽略该设置。

3. 关闭计算摄影相关增强特性

Pixel默认的计算摄影优化可能会覆盖手动白平衡设置,可尝试关闭以下选项:

  • 关闭边缘增强:
    captureRequestBuilder?.set(CaptureRequest.EDGE_MODE, CaptureRequest.EDGE_MODE_OFF)
    
  • 关闭镜头阴影校正(非必需时):
    captureRequestBuilder?.set(CaptureRequest.STATISTICS_LENS_SHADING_MODE, CaptureRequest.STATISTICS_LENS_SHADING_MODE_OFF)
    
  • 关闭零延迟快门(ZSL):
    captureRequestBuilder?.set(CaptureRequest.CONTROL_ENABLE_ZSL, false)
    

4. 显式设置COLOR_CORRECTION_MODE为MANUAL

虽然文档说明CONTROL_AWB_MODE_OFF时会自动切换到手动颜色校正模式,但Pixel的实现可能需要显式声明:

captureRequestBuilder?.set(CaptureRequest.COLOR_CORRECTION_MODE, CaptureRequest.COLOR_CORRECTION_MODE_MANUAL)

验证步骤

  1. 优先添加CONTROL_MODE和COLOR_CORRECTION_MODE的显式设置,测试是否生效;
  2. 若仍无效,检查增益值是否在设备允许范围内;
  3. 逐步关闭计算摄影增强选项,排查是否有功能覆盖手动设置。

内容的提问来源于stack exchange,提问作者Lukas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 04:13:29