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,直到您完成图像捕获。
使用 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,直到您完成图像捕获。