Python 原始图像保存问题

Python rawpy image saving issues

我正在尝试在 python 中合并天文摄影图像。目前我遇到的问题是,当使用不同的库导出图像时,图像的色调与原始图像不同。导入的图片为.nef格式。

代码:

import matplotlib.pyplot as plt
import numpy as np
import cv2
from scipy import misc
import rawpy
from PIL import Image
import imageio

raw=rawpy.imread("DSC_5817.NEF")

#raw=rawpy.imread("images/1/slika1.cr2")
rgb=raw.postprocess(no_auto_bright=True)

outfn=".tif"

img=Image.fromarray(rgb)



img.convert("RGB")


img.save("probaPIL"+outfn)
#
cv2.imwrite("progaCV2"+outfn, rgb)

misc.imsave("probaSCipi"+outfn, rgb)
#
imageio.imsave("probaIMAGEIO"+outfn, rgb)

plt.imsave("probaPLT.tif",rgb )

slika=plt.imread("probaPIL.tif")

Screnshot of the output (top middle image is original nef file)

OpenCV (cv2) 需要一个不同的通道顺序 (BGR),这就是为什么那个通道的颜色与其他通道相比有所不同。

一般来说,没有单一的方法可以对 RAW 相机图像进行后处理,结果通常取决于个人喜好,例如白平衡,亮度调整等。您在顶部中间列中称为 "original" 的只是另一个可能由某些尼康驱动程序创建的后处理变体,它更了解 RAW 图像文件中的某些元数据并试图为您提供你 "expect" 的东西。 rawpy(或者更确切地说,底层 libraw 库)不会复制制造商后处理的确切行为,因为这或多或少是商业秘密。

对于天文摄影,灰度图像可能还是不错的,但这实际上取决于您的用例和您想要实现的目标。