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



我正在使用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

现在我不明白了-为什么我的形状不是(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)

此错误(imread返回PIL.PngImagePlugin.PngImageFile类而不是数据数组)经常发生在安装了较旧版本的python映像库pillow或更糟糕的PIL时。pillowPIL的一个更新的"友好"分支,绝对值得安装!

尝试更新这些包;(取决于你的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并再次运行命令。

相关内容

  • 没有找到相关文章

最新更新