我想显示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 np
from PIL import Image
# Create a NumPy array
arry = np.array([3,3])
arry= [[25,25,25],[0,0,0],[0,0,0]]
# Create a PIL image from the NumPy array
image = Image.fromarray(arry)
# Save the image
image.save('image.jpg')
答案 0 :(得分:2)
您创建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')
这将起作用。
答案 1 :(得分:1)
问题是您没有创建一个numpy数组:
# Create a NumPy array
arry = np.array([3,3])
arry= [[25,25,25],[0,0,0],[0,0,0]]
当您这样做时,arry
成为列表的list,因此出现错误:
AttributeError:“列表”对象没有属性“ 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')
请注意,以上内容将arry
中的dtype指定为np.uint8。