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
库)不会复制制造商后处理的确切行为,因为这或多或少是商业秘密。
对于天文摄影,灰度图像可能还是不错的,但这实际上取决于您的用例和您想要实现的目标。
我正在尝试在 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
库)不会复制制造商后处理的确切行为,因为这或多或少是商业秘密。
对于天文摄影,灰度图像可能还是不错的,但这实际上取决于您的用例和您想要实现的目标。