我使用了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)
答案 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并再次运行命令。