尝试运行简单的PIL python示例,无法将jpeg转换为float
image
image-processing
python
python-imaging-library
9
0

所以我写了一个简单的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

基本上说我不能隐瞒我的形象,任何人都知道我在想什么

参考资料:
Stack Overflow
收藏
评论
共 2 个回答
高赞 时间 活跃

我知道这将很快发生,但我认为我应该回答,以防其他人遇到相同的问题。我遇到了同样的问题,问题是我加载的图像在项目文件夹中不存在,因此您需要在使用前检查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或data数组。

这应该工作:

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

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题