camera2 API - 设置白平衡但得到绿色图片

camera2 API - set white balance but get green picture

使用 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);
}

但是拍完第二张后,结果图变绿了像this on Huawei only, I don't know why. This 也有绿图,但不解释为什么。

您还应该像使用 COLOR_CORRECTION_GAINS 一样使用 CaptureResult 中的 COLOR_CORRECTION_TRANSFORM 的值,而不是使用 SENSOR_CALIBRATION_TRANSFORM1;后者用于处理 RAW 图像,而不是用作有效 COLOR_CORRECTION_TRANSFORM.

您也可以考虑简单地锁定 AWB,直到您完成图像捕获。