【问题标题】:Python PIL cut off my 16-bit grayscale image at 8-bitPython PIL 以 8 位截断了我的 16 位灰度图像
【发布时间】:2013-09-18 10:16:07
【问题描述】:

我正在开发一个 python 程序来显示星星的图像。图像是 16 位灰度 tiff。 如果我尝试在外部程序中显示它们,例如ImageMagick 它们是正确的,但如果我在 python 中加载它们然后使用'show()'或在 Tkinter 的画布中实现它们,除非几个像素,否则它们是完全白色的。 所以我估计python将255以上的每个像素都设置为白色,但我不知道为什么。如果我加载图像然后再次将其保存为 tiff,ImageMagick 可以正确显示它。 感谢您的帮助。

【问题讨论】:

  • 版本 1.1.6 我的 PIL 可以处理我的图像,但显示是错误的

标签: python image tiff


【解决方案1】:

尝试将图像转换为 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)

【讨论】:

  • 我使用 python 3,找不到图像
猜你喜欢
  • 2011-12-25
  • 2015-06-29
  • 1970-01-01
  • 2020-05-15
  • 2015-08-11
  • 1970-01-01
  • 2016-06-27
  • 2017-07-31
  • 2012-06-13
相关资源
最近更新 更多