尝试用rawpy
在Python中处理原始DNG图片,结果很奇怪。在
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
数组可以得到预期的结果:
从google上我了解到可以导入同一个文件,但是输出是16位的。在
我在后处理函数中使用了以下参数:
^{pr2}$现在,rgb
数组包含16位值,但可视化结果如下:
有人能告诉我如何获得一个类似于第一个结果但处理16位值的可视化效果?在
最初我认为这与我的相机产生的是14位图像而不是16位图像有关,但是将参数output_bps
更改为14位会导致更糟糕的可视化效果。在
提前谢谢!在
如有要求,我会在这里添加一张PENTAX K-5的原始图片,但它是18MB大,论坛有2MB的限制(可能是另一种方式来传递文件吗?)。在
我不认为这个问题与如何读取图像有关,因为
imshow
不显示16位RGB图像。因此,如果你有兴趣在16位图像中直观地检查读取结果,我建议要么单独检查波段,要么使用等等;或者将rgb转换为8位并显示,使用
^{pr2}$相关问题 更多 >
编程相关推荐