![](/img/trans.png)
[英]Python: Manipulating a 16-bit .tiff image in PIL &/or pygame: convert to 8-bit somehow?
[英]Python PIL cut off my 16-bit grayscale image at 8-bit
我正在使用python程序来显示星星图像。 图像是16位灰度tiff。 如果我尝试在extern程序(例如ImageMagick)中显示它们,则它们是正确的,但是如果我将它们加载到python中,然后使用“ show()”或在Tkinter的画布中实现它们,则除非有几个像素,否则它们将是完全白色的。 因此,我估计python将255以上的每个像素都设置为白色,但是我不知道为什么。 如果我加载图像,然后再次将其另存为tiff,ImageMagick可以正确显示它。 感谢帮助。
尝试将图像转换为numpy数组并显示:
import Image
import matplotlib.pyplot as plt
import numpy as np
img = Image.open('image.tiff')
arr = np.asarray(img.getdata()).reshape(img.size[1], img.size[0])
plt.imshow(arr)
plt.show()
您也可以更改颜色映射:
from matplotlib import cm
plt.imshow(arr, cmap=cm.gray)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.