来自 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)。
我想使用 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))
我希望得到这个结果:
但我一直收到这样的暗输出:
对于实际文件 NEF,如果你想弄乱它,我将它们上传到我的 google 驱动器:https://drive.google.com/drive/folders/1DVSPXk2Mbj8jpAU2EeZfK8d2HZM9taiH?usp=sharing
您没有做错任何事,只是缩略图是由尼康专有的 in-camera 图像处理管道生成的。使用一组完全不同的算法很难从开源工具获得完全相同的视觉输出。
您可以通过设置no_auto_bright=False
使图像更亮。如果您对默认亮度不满意,可以使用 auto_bright_thr
参数(参见 documentation)。