python - 如何生成随机二值图像?
问题描述
我知道二进制图像是具有 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)
解决方案
你想要的是一个单一的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)
推荐阅读
- javascript - JS - 每次我尝试注册用户时,获取 api 都会多次调用自身,除了第一次
- arrays - 如何在 Typescript 中声明变量类型的数组?
- sql - 在 SQL 视图中将多行合并为单行(没有分组依据或使用 CTE?)
- c++ - 为什么我在 OpenGL 中的对象旋转方向与使用四元数的预期相反?
- angular - 如何正确输出详细帖子的模板?
- gradle - Intellij 使用离线模式构建 gradle 项目 jar
- python - PyTorch中点操作导致的层权重
- python - 如何从python中的表中抓取url
- r - 让 R 打印一个 Stata 命令
- python - FPDF Emoji Star 问题