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

时间:2019-02-14 04:18:46

标签: python-3.x opencv3.0

我想使用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))

我希望得到以下结果: comparison https://imgur.com/Q8qWfwN

但是我一直在得到这样的黑暗输出: comparison https://imgur.com/0jIuqpQ

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

1 个答案:

答案 0 :(得分:1)

您没做错什么,只是缩略图是由尼康专有的相机内图像处理管线生成的。很难通过一套完全不同的算法从开源工具获得完全相同的视觉输出。

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