首页 > 解决方案 > 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);
}

但是在拍完第二张之后,结果图片只有在华为上变成这样的绿色我不知道为什么。这篇文章也有绿色图片,但没有解释原因。

标签: javaandroidandroid-camera2huawei-mobile-serviceshuawei-developers

解决方案


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

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


推荐阅读