显示图像时的Python错误

时间:2016-09-05 20:56:57

标签: python image python-imaging-library

在此图片上

enter image description here

我正在尝试申请:

from PIL import Image
img0 = PIL.Image.open('Entertainment.jpg')
img0 = np.float32(img0)
showarray(img0/255.0)

我收到了这个错误:

TypeErrorTraceback (most recent call last)
<ipython-input-20-c181acf634a8> in <module>()
      2 img0 = PIL.Image.open('Entertainment.jpg')
      3 img0 = np.float32(img0)
----> 4 showarray(img0/255.0)

<ipython-input-8-b253b18ff9a7> in showarray(a, fmt)
     11     f = BytesIO()
     12     PIL.Image.fromarray(a).save(f, fmt)
---> 13     display(Image(data=f.getvalue()))
     14 
     15 def visstd(a, s=0.1):

TypeError: 'module' object is not callable

我无法理解为什么。

这里有什么不可赎回的?
我怎样才能显示图像?

2 个答案:

答案 0 :(得分:0)

Image是您导入的模块

from PIL import Image

你不能称之为

Image(data=f.getvalue())

有一种可能有用的节目方法

img0 = PIL.Image.open('Entertainment.jpg')
img0.show() 

答案 1 :(得分:0)

问题可能源于您导入display()函数的方式。如果您的导入行是:

import IPython.display as display

然后您需要调用display.display()来显示图像。例如:

import IPython.display as display
my_image = Image.open('something.jpg')
display.display(my_image)

如果您改为将函数调用为

import IPython.display as display
my_image = Image.open('something.jpg')
display(my_image) # INCORRECT
# TypeError: 'module' object is not callable

然后您确实会在原始帖子中收到错误消息,因为display是指模块而不是函数。

或者,如果您以以下方式导入display()函数,则代码将起作用:

from IPython.display import display
my_image = Image.open('something.jpg')
display(my_image)