首页 > 解决方案 > 如何生成随机二值图像?

问题描述

我知道二进制图像是具有 0 和 1 值的矩阵。如果我生成一个包含 0 和 1 个元素的 numpy 矩阵,然后我使用 python 中的枕头库从 numpy 数组中读取图像,则图像是黑色的。为什么会这样?

from PIL import Image
import numpy
matrix = numpy.random.randint(2, size=(512,512))
img =  Image.fromarray(matrix)
img.save(test.png)

标签: pythonpython-imaging-library

解决方案


你想要的是一个单一的PNG图像。cv2并且PIL.Image都支持这种类型的图像。

from PIL import Image
import numpy
# boolean matrix
matrix = numpy.random.randint(2, size=(512,512)).astype(bool)
img =  Image.fromarray(matrix)
img.save(test.png, bits=1,optimize=True)

推荐阅读