我在一个应用程序中工作,我需要拍摄很多照片(可能是几万张),并且必须是RAW,这些照片我需要用本机代码处理。现在,我将RAW转换为DNG,并在本地代码中使用libraw解压缩它们。我得到了白平衡颜色倍增器,以及来自dng的颜色矩阵。
但是,将原始数据转换为dng,然后处理dng需要相当长的时间,我想跳过此步骤,直接处理原始信息,而无需DNG中介。但是为此,我需要获取颜色矩阵和WB值。我确实看过这些文档,但没有找到任何方法。任何帮助,将不胜感激。
该信息在传递给CaptureResult的CameraCharacteristics和DngCreator对象中可用,特别是诸如以下字段:
https://developer.android.com/reference/kotlin/android/hardware/camera2/CameraCharacteristics#sensor_calibration_transform1https://developer.android.com/reference/kotlin/android/hardware/camera2/CameraCharacteristics#sensor_color_transform1https://developer.android.com/reference/kotlin/android/hardware/camera2/CameraCharacteristics#sensor_forward_matrix1https://developer.android.com/reference/kotlin/android/hardware/camera2/CameraCharacteristics#sensor_reference_illuminant1https://developer.android.com/reference/android/hardware/camera2/CaptureResult#SENSOR_NEUTRAL_COLOR_POINT
这些字段中的大多数基本上都直接映射到DNG规范,但是您可以尝试查看DngCreator实现,以了解如何从camera2 API转到DNG字段:https://cs.android.com/android/platform/superproject/+/master:frameworks/base/core/jni/android_hardware_camera2_DngCreator.cpp;l=1217