2013-05-17 45 views
3

我试图让scipy.misc.imread只读图像并告诉我它的大小,我已经能够在其他电脑,但它的失败给我上了一个新的Mac:scipy.misc.imread创建一个没有大小或形状的图像

Python 2.7.4 (default, May 16 2013, 16:40:58) 
[GCC 4.2.1 Compatible Apple Clang 4.1 ((tags/Apple/clang-421.11.65))] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import scipy.misc 
>>> scipy.__version__ 
'0.11.0' 
>>> image = scipy.misc.imread('test.jpg') 
>>> image 
array(<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=870x1110 at 0x10BEC3F80>, dtype=object) 
>>> image.size 
1 
>>> image.shape 
() 

所以图片加载,并且大小(870x1110)似乎存在,但是当我做image.size或im​​age.shape我得到的垃圾。

我用同样的图像上的完全相同的代码在另一台机器上,并得到有意义的结果:

>>> image.size 
237456 
>>> image.shape 
(318,249,3) 

(顺便一提,当我的好机器上打印的图像,它显示为UINT8数组,而不是对象数组)。

糟糕的机器是Mac,运行Mountain Lion,使用python 2.7.4和scipy version 0.11(我从0.12降级,以防出现问题)。我正在使用venv在虚拟环境中运行。

任何人都知道发生了什么事?我是否严重安装了PIL,或者什么?

回答

4

解决!我安装PIL时没有安装Libjpeg。所以我这样做:

pip uninstall PIL 
brew install libjpeg 
pip install PIL 

它的工作原理。我得到了暗示从这里:

https://stackoverflow.com/a/12194881/11522

+0

我遇到了同样的问题,但与PNG,做我需要安装'libpng'什么?我使用PIL的窗口。 –

相关问题