Skimage简单的imread图像返回奇怪的输出

时间:2014-06-06 19:30:23

标签: python image numpy multidimensional-array

我使用了skimage模块的图像读取,并且无法理解我得到的输出。 我试图阅读一个简单的rgb图像" lena.png"通过以下方式:

from skimage import io
im = io.imread('lena.png')

我得到的输出具有以下属性:

In [49]: im
Out[49]: array(<PIL.PngImagePlugin.PngImageFile image mode=RGB size=512x512 at 0
x35FBD00>, dtype=object)

In [50]: im.shape
Out[50]: ()

In [51]: im.size
Out[51]: 1

现在我无法理解 - 为什么im的形状不是(512,512,3)? 这段代码是我使用的更大程序的一部分,我得到一个错误,而一些函数试图通过访问im.shape [2]来计算颜色通道的数量。

我添加了一个带有预期输出的引用: 见http://scipy-lectures.github.io/packages/scikit-image/第3.2.2.2段

>>> lena = data.lena()
>>> lena.shape
(512, 512, 3)

1 个答案:

答案 0 :(得分:0)

当您拥有较旧版本的python映像库imread或更糟糕的PIL.PngImagePlugin.PngImageFile时,通常会发生此错误(pillow返回PIL类而非数据数组)安装。 pillow是一个更新的友好&#34; PIL的分叉,绝对值得安装!

尝试更新这些包; (取决于你的python发行版)

# to uninstall PIL (if it's there, harmless if not)
$ pip uninstall PIL
# to install (or -U update) pillow
$ pip install -U pillow

然后尝试重新启动python shell并再次运行命令。