我有一个 50x50 元素的数组,其中每个元素要么是 True 要么是 False - 这代表一个 50x50 的黑白图像。
我无法将其转换为图像?我尝试了无数种不同的功能,但都没有用。
import numpy as np
from PIL import Image
my_array = np.array([[True,False,False,False THE DATA IS IN THIS ARRAY OF 2500 elements]])
im = Image.fromarray(my_array)
im.save("results.jpg")
^ 这个给了我:“无法处理这种数据类型”。
我看到 PIL 有一些功能,但它们只转换 RGB 像素列表,我有一个简单的黑白阵列,没有其他 channel 。
最佳答案
首先,您应该制作 50x50 数组而不是一维数组:
my_array = my_array.reshape((50, 50))
然后,要获得标准的 8 位图像,您应该使用无符号 8 位整数数据类型:
my_array = my_array.reshape((50, 50)).astype('uint8')
但是您不希望 True
为 1
,您希望它们为 255
:
my_array = my_array.reshape((50, 50)).astype('uint8')*255
最后,您可以转换为 PIL 图像:
im = Image.fromarray(my_array)
我会像这样一次性完成:
im = Image.fromarray(my_array.reshape((50,50)).astype('uint8')*255)
关于python - 将黑白数组转换为python中的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22902040/