2013-05-17 56 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的窗口。 –

相關問題