来自 rawpy 的原始图像比缩略图更暗

Raw Images from rawpy darker than their thumbnails

我想使用 Python 中的 rawpy、imageio 和 opencv 库将“.NEF”转换为“.png”。我在 rawpy 中尝试了各种标志来生成与我刚打开 NEF 时看到的相同的图像,但所有输出的图像都非常暗。我做错了什么?

我当前的代码版本是:

import rawpy
import imageio
from os.path import *
import os
import cv2


def nef2png(inputNEFPath):
    parent, filename = split(inputNEFPath)
    name, _ = splitext(filename)
    pngName = str(name+'.png')
    tempFileName = str('temp%s.tiff' % (name))
    with rawpy.imread(inputNEFPath) as raw:
        rgb = raw.postprocess(gamma=(2.222, 4.5),
                              no_auto_bright=True,
                              output_bps=16)
    imageio.imsave(join(parent, tempFileName), rgb)
    image = cv2.imread(join(parent, tempFileName), cv2.IMREAD_UNCHANGED)
    cv2.imwrite(join(parent, pngName), image)
    os.remove(join(parent, tempFileName))

我希望得到这个结果: https://imgur.com/Q8qWfwN

但我一直收到这样的暗输出: https://imgur.com/0jIuqpQ

对于实际文件 NEF,如果你想弄乱它,我将它们上传到我的 google 驱动器:https://drive.google.com/drive/folders/1DVSPXk2Mbj8jpAU2EeZfK8d2HZM9taiH?usp=sharing

您没有做错任何事,只是缩略图是由尼康专有的 in-camera 图像处理管道生成的。使用一组完全不同的算法很难从开源工具获得完全相同的视觉输出。

您可以通过设置no_auto_bright=False使图像更亮。如果您对默认亮度不满意,可以使用 auto_bright_thr 参数(参见 documentation)。