1
[[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 位,两位代表一个像素?

谢谢。

4

1 回答 1

2

您可以使用Pillowpbm库从上述数据创建图像:

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")
于 2018-12-07T21:46:43.437 回答