【发布时间】:2015-05-21 17:18:28
【问题描述】:
我有一系列 tiff 图像要在 Python 中加载。
我首先使用:
im=Image.open(*)
它可以正确加载和显示。
>>> im
PIL.TiffImagePlugin.TiffImageFile image mode=I;16 size=1408x1044 at 0x116154050
>>> type(im)
instance
>>> im.size
(1408, 1044)
然后我使用:
imarray=numpy.array(im)
在哪里
>>> imarray.shape
()
>>> imarray.size
1
>>> type(imarray)
numpy.ndarray
>>> imarray
array(PIL.TiffImagePlugin.TiffImageFile image mode=I;16 size=1408x1044 at 0x116154050, dtype=object)
我已阅读 this previous post 并按照那里的说明进行操作,但我无法让 imarray.shape 和 im.size 匹配。
【问题讨论】:
-
这可能与您的 PIL 版本有关。您是否尝试过here 建议的解决方案?
-
如果您打算进行任何类型的图像处理,我建议您使用 OpenCV。它们具有 Python 绑定,让您的生活更轻松,包括自动将图像转换为 numpy 数组。
-
@KronoS OpenCV 对于简单的图像 I/O 来说是大量过度杀伤力。 Pillow 甚至 matplotlib 提供更轻量级的解决方案。
-
@ali_m 我同意,但是,如果 OP 想要对图像进行操作,那么重量级的 OpenCV 就派上用场了。
-
@KronoS 我们还不知道 OP 想要对图像实际做什么,所以在这个阶段我不会直接推荐 OpenCV
标签: python arrays numpy python-imaging-library