为了账号安全,请及时绑定邮箱和手机立即绑定

使用 PIL `Image.fromarray` 创建图像导致 AttributeError:

使用 PIL `Image.fromarray` 创建图像导致 AttributeError:

繁星淼淼 2021-09-28 16:41:05
我想显示 NumPy 数组中的图像,但出现此错误:Traceback (most recent call last):  File "E:/wittos/python/SVM/witti svm/arraytoimage.py", line 14, in <module>   image = Image.fromarray(arry)  File "C:\Users\MOHAMED-WITTI-ADOU\AppData\Local\Programs\Python\Python35\lib\site-packages\PIL\Image.py", line 2483, in fromarray    arr = obj.__array_interface__AttributeError: 'list' object has no attribute '__array_interface__'我希望你能帮我解决这个错误。import numpy as npfrom PIL import Image# Create a NumPy arrayarry = np.array([3,3])arry= [[25,25,25],[0,0,0],[0,0,0]]# Create a PIL image from the NumPy arrayimage = Image.fromarray(arry)# Save the imageimage.save('image.jpg')
查看完整描述

2 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

您创建 numpy 数组的方式是错误的。您应该将其创建为:


arry = np.array([[25,25,25],[0,0,0],[0,0,0]])

然后它会起作用。因为,您正在覆盖用普通数组创建的空 numpy 数组。


import numpy as np

from PIL import Image


# Create a NumPy array

arry = np.array([[25,25,25],[0,0,0],[0,0,0]])


# Create a PIL image from the NumPy array

image = Image.fromarray(arry.astype('uint8'))


# Save the image

image.save('image.jpg')

这将起作用。


查看完整回答
反对 回复 2021-09-28
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

问题是您没有创建一个 numpy 数组:


# Create a NumPy array

arry = np.array([3,3])

arry= [[25,25,25],[0,0,0],[0,0,0]]

当您这样做时,它arry会变成一个列表列表,因此会出现错误:


AttributeError: 'list' 对象没有属性 'array_interface'


你应该这样做:


import numpy as np

from PIL import Image


# Create a NumPy array

arry = np.array([[25, 25, 25], [0, 0, 0], [0, 0, 0]], dtype=np.uint8)


# Create a PIL image from the NumPy array

image = Image.fromarray(arry)


# Save the image

image.save('image.jpg')

需要注意的是上述指定的D型的arry是np.uint8。


查看完整回答
反对 回复 2021-09-28
  • 2 回答
  • 0 关注
  • 2135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信