编辑:抱歉,代码的第一个版本很烂,我试图删除无用的信息,结果犯了一个错误。问题仍然存在,但现在这是我实际使用过的代码。
我认为我的问题可能非常基础,但我找不到解决方法。我只是想用PIL玩一下,将图像转换为数组并反向转换,然后保存图像。它应该看起来相同,对吧?在我的情况下,新图像只是一些乱码,它似乎有一些结构,但它不像应该是一个飞机的图片:
def array_image_save(array, image_path ='plane_2.bmp'):
image = Image.fromarray(array, 'RGB')
image.save(image_path)
print("Saved image: {}".format(image_path))
im = Image.open('plane.bmp').convert('L')
w,h = im.size
array_image_save(np.array(list(im.getdata())).reshape((w,h)))
some_path
图像?你的 save() 调用似乎没有指定扩展名。 - DarkCygnusim
是一个PIL图像对象,但是Image.fromarray
期望它的参数是一个数组,并且它会从该数组创建一个图像。我猜你想要一个Numpy数组。是这样吗?请参见https://dev59.com/smsz5IYBdhLWcg3wn5ba#7769424。 - PM 2Ring