我想将 DNG 文件中的数据转换为以下内容:
- 使用黑电平校正偏移
image_without_offset = image - black_level
- 将白色缩放到最大值 2^16-1
image_scaled = image_without_offset / (white_level - black_level) * (2**16-1)
- 将白平衡和剪辑应用到有效范围
image_white_balanced = clip(image_scaled * asn_gains, 0, 2**16-1)
- 去马赛克拜耳图像
使用 RawPy 怎么能做到这一点?第 3 步和第 4 步可能按顺序颠倒,但必须提前应用偏移校正。
进一步的后处理是单独进行的。这部分有效,因为它已经使用不依赖于 RawPy 的其他工作流程进行了验证,这首先提到的步骤。
我不知道完成此操作的正确参数化,或者是否可以使用 RawPy。以下是我尝试过的,但颜色看起来与应有的不同。
with rawpy.imread(dng_path) as dng_raw:
rgb = dng_raw.postprocess(
demosaic_algorithm=rawpy.DemosaicAlgorithm.AAHD,
half_size=False,
no_auto_scale=False,
no_auto_bright=True,
use_camera_wb=True,
gamma=[1,1],
output_color=rawpy.ColorSpace.raw,
output_bps=16)
我现在还不清楚参数如何no_auto_scale
影响结果。