0

我想将 DNG 文件中的数据转换为以下内容:

  1. 使用黑电平校正偏移
    image_without_offset = image - black_level
  2. 将白色缩放到最大值 2^16-1
    image_scaled = image_without_offset / (white_level - black_level) * (2**16-1)
  3. 将白平衡和剪辑应用到有效范围
    image_white_balanced = clip(image_scaled * asn_gains, 0, 2**16-1)
  4. 去马赛克拜耳图像

使用 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影响结果。

4

0 回答 0