如何使用python生成0和1组合的PBM

时间:2018-12-07 21:34:30

标签: python pbm

[[0,1,0,1,1,0,0,0,0,1,0,1,0,1,0,1]
[0,0,0,0,0,1,1,1,1,0,1,0,1,0,1,1]
[0,0,0,0,0,0,1,1,1,1,1,0,1,0,1,0]
[0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0]
[0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1]]

如何使用 PBM 格式使用about矩阵生成二进制图像? 由于有16列和5行。我搜索了一些可以将图像转换为二进制图像的方法,但无法找到一种使用这种矩阵生成二进制图像的方法。

在二进制映像中将使用多少内存来表示内存中的0或1?假设一个二进制图像只有1个像素。多少内存将用于表示图像上的那个像素?与灰度图像一样,单个像素需要8个字节。对于二进制图像,它只占用0或1,难道它占用2位两位代表一个像素吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

您可以使用Pillow库,以便根据上述数据创建pbm图像:

from PIL import Image

binaryData = [[0,1,0,1,1,0,0,0,0,1,0,1,0,1,0,1],
[0,0,0,0,0,1,1,1,1,0,1,0,1,0,1,1],
[0,0,0,0,0,0,1,1,1,1,1,0,1,0,1,0],
[0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0],
[0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1]]

pixelData = [255 if elem else 0 for row in binaryData for elem in row]

img = Image.new("L", (len(binaryData[0]), len(binaryData)))
img.putdata(pixelData)
img.save("image.pbm")
相关问题