簡體   English   中英

試圖運行簡單的PIL python示例,無法將jpeg轉換為float

[英]Trying to run simple PIL python example, can't convert jpeg to float

所以我寫了一個簡單的python腳本

from PIL import Image
from pylab import *
im = array(Image.open('sample.jpg'))
imshow(im)

我從IDLE得到這個錯誤

Traceback (most recent call last):
  File "/home/michael/Dropbox/OpenCV/greyscale.py", line 5, in <module>
    imshow(im)
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/pyplot.py", line 2722, in     imshow
   imlim=imlim, resample=resample, url=url, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/axes.py", line 7091, in imshow
im.set_data(X)
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/image.py", line 418, in     set_data
    raise TypeError("Image data can not convert to float")
TypeError: Image data can not convert to float

基本上說我不能隱藏我的形象漂浮,任何人都知道我失蹤了什么

我知道這會很晚才到,但我想我應該回答以防其他人遇到同樣的問題。 我遇到了同樣的問題,問題是我加載的圖像在項目文件夾中不存在。所以你需要檢查sample.jpg存在,並且在使用它之前它已正確加載。

if os.path.isfile('sample.jpg'): im = array(Image.open('sample.jpg'))
if im == None or im.size == 0: 
   print 'Image loaded is empty'
   sys.exit(1)

你有什么是接近的。 查看imshow文檔,您需要傳遞一個Image或一個數據數組。

這應該工作:

from PIL import Image
from pylab import *
im = Image.open('sample.jpg')
imshow(im)


這是imshow()所期待的:

“X可以是浮點數組,uint8數組或PIL圖像。”

這里有更多細節:
http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.imshow

嘗試這個

>>> import matplotlib.pyplot as plt
>>> plt.imshow(im.reshape(im.shape[0], im.shape[1]), cmap=plt.cm.Greys)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM