java - camera2 API - 设置白平衡但得到绿色图片
问题描述
在获取拍摄照片的上一个色温并使用 camera2 API 设置下一张照片时,我遇到了问题。
if ( nbOfPict > 0 ){
builder.set( CaptureRequest.CONTROL_AWB_MODE, CameraMetadata.CONTROL_AWB_MODE_OFF );
builder.set( CaptureRequest.COLOR_CORRECTION_MODE, CameraMetadata.COLOR_CORRECTION_MODE_TRANSFORM_MATRIX );
builder.set( CaptureRequest.COLOR_CORRECTION_TRANSFORM, characteristics.get( CameraCharacteristics.SENSOR_CALIBRATION_TRANSFORM1 ) );
builder.set( CaptureRequest.COLOR_CORRECTION_GAINS, colorTemperature );
}
并在捕获结果上
if ( nb == 0 ) {
colorTemperature = result.get(CaptureResult.COLOR_CORRECTION_GAINS);
}
解决方案
您还应该使用 CaptureResult 中的 COLOR_CORRECTION_TRANSFORM 的值,就像使用 COLOR_CORRECTION_GAINS 一样,而不是使用 SENSOR_CALIBRATION_TRANSFORM1;后者用于处理 RAW 图像,而不是用作有效的 COLOR_CORRECTION_TRANSFORM。
您也可以考虑简单地锁定 AWB,直到您完成捕获图像。
推荐阅读
- python-3.x - Python:唯一加权随机值
- ios - 合并:在 func 中将一个发布者转换为另一个发布者
- ios - 如何添加注释以从另一个视图控制器映射
- javascript - 使用 Javascript 中的多个 Promise 更新通用的全局数据结构
- git - 通过公司网络中的 git@github.com:xxx/yyy.git 进行 git 克隆
- c# - Firebase 在移动设备上登录失败
- android - 检测到盗版 Android 应用程序中添加的库?
- c++ - 浮点运算何时“无效”?
- vue.js - 将 .env 变量导入 Vuetify variables.scss
- r - 在箱线图中实现定义的值