尝试在 Python 中处理原始 DNG 图片,但rawpy
结果很奇怪。
import rawpy
import imageio
from matplotlib import pyplot as plt
path = '/home/stefan/AIJ/RAW.DNG'
with rawpy.imread(path) as raw:
rgb = raw.postprocess()
plt.imshow(rgb)
plt.show()
结果是一个 8 位值的 rgb 图片数组,而我的相机生成 14 位原始图片。
可视化rgb
数组给出了预期的结果:
通过一些谷歌搜索,我了解到可以导入相同的文件,但输出为 16 位。
我在后处理函数中使用了以下参数:
rgb = raw.postprocess(output_bps=16,demosaic_algorithm=None,output_color = rawpy.ColorSpace.Adobe)
现在rgb
数组包含 16 位值,但可视化结果如下:
有人能告诉我如何获得类似于第一个结果但处理 16 位值的可视化吗?
最初我认为这与我的相机生成 14 位图像而不是 16 位的事实有关,但将参数更改output_bps
为 14 会产生更差的可视化结果。
提前致谢!
根据要求,我会在此处添加 PENTAX K-5 的原始图片,但它有 18MB 大,并且论坛有 2MB 的限制(可能是另一种传递文件的方式?)。