python - 将黑白数组转换为python中的图像?

标签 python arrays image-processing numpy python-imaging-library

我有一个 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')

但是您不希望 True1,您希望它们为 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/

相关文章:

python - peewee 的 get 方法如何知道如何生成 where 子句?

javascript - 如何测试字符串是否以字符串列表结尾

Java 成像框架

python - 如何在更正 if 语句之前打印 X 行

python - 加速 scipy.integrate.quad()?

python - 使用反斜杠和双引号提取数据 - Python CSV 阅读器

arrays - 如何为键=值项目批量遍历数组

java - 在数组中搜索元素,然后返回带有索引的新数组

image-processing - 使用 OpenCV 循环创建新图像

c++ - 圆圈检测: parameters for houghcricles