您可能有一个不完整的Python成像库(PIL)安装,SciPy依赖它来读取图像. PIL依赖于libjpeg加载JPEG图像和libz来加载PNG图像,但是可以在没有任何图像的情况下安装(在这种情况下,它无法加载库中缺少的任何图像).
我有与上面描述的JPEG图像完全相同的问题.不会引发任何错误消息,而是SciPy调用只返回一个包装的PIL对象,而不是正确地将图像加载到数组中,这使调试变得特别棘手.但是,当我尝试直接使用PIL加载图像时,我得到了:
> import Image
> im = Image.open('001988.jpg')
> im
> im.size
> (333, 500)
> pixels = im.load()
IOError: decoder jpeg not available
所以我卸载了我的PIL副本,安装了丢失的libjpeg(在我的情况下,可能是你的libz),重新安装PIL以注册库的存在,现在加载SciPy的图像完美地工作:
> from scipy import ndimage
> im = ndimage.imread('001988.jpg')
> im.shape
(500, 333, 3)
> im
array([[[112, 89, 48], ...
..., dtype=uint8)