在Python中显示随机RGB像素

问题描述 投票:0回答:1

我正在开始一个小项目,但在找到我正在寻找的答案时遇到一些困难。我真的不知道应该使用什么术语来搜索,也找不到类似的内容,所以如果之前有人问过这个问题,我很抱歉。

我本质上是想绘制一个固定大小的 2D 图,例如 300x300,充满随机 RGB 像素。到目前为止,我已经弄清楚如何用 imshow 绘制它们并删除轴标签,但它看起来很奇怪,就像放大得太远了。另外,我知道我可以在 imshow 中使用 RGB 参数,但 matplotlib 手册涉及它,但从未给出任何示例。我发现的最接近 RGB 的 cmap 是 hsv,所以我现在使用它,直到找到 RGB 解决方案。

任何人都可以帮助我为每个像素分配一个随机 RGB 值,而不是使用 cmap,并且可能调整图像的外观大小,以便像素不那么“放大”?为了灵活性,我愿意使用 imshow 以外的东西,这是我发现做我想做的事情的唯一方法。提前非常感谢!

import matplotlib.pyplot as plt
import matplotlib.cm as cm
from numpy import random

Z = random.random((300,300))
plt.imshow(Z, cm.get_cmap("hsv"), interpolation='nearest')
plt.axis('off')
plt.show()
python matplotlib rgb imshow
1个回答
1
投票

以下是使用 PIL 的方法:

from PIL import Image
import numpy as np

data = (np.random.random( (300,300,3) ) * 256).astype(np.uint8)
img = Image.fromarray(data)
img.show()
img.save('rand.png')
© www.soinside.com 2019 - 2024. All rights reserved.