如何将 numpy 数组转换为(并显示)图像?

新手上路,请多包涵

我这样创建了一个数组:

 import numpy as np
data = np.zeros( (512,512,3), dtype=np.uint8)
data[256,256] = [255,0,0]

我想要做的是在 512x512 图像的中心显示一个红点。 (至少开始……我想我可以从那里弄清楚其余的)

原文由 jlswint 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 306
2 个回答

您可以使用 PIL 创建(和显示)图像:

 from PIL import Image
import numpy as np

w, h = 512, 512
data = np.zeros((h, w, 3), dtype=np.uint8)
data[0:256, 0:256] = [255, 0, 0] # red patch in upper left
img = Image.fromarray(data, 'RGB')
img.save('my.png')
img.show()

原文由 unutbu 发布,翻译遵循 CC BY-SA 4.0 许可协议

以下应该工作:

 from matplotlib import pyplot as plt
plt.imshow(data, interpolation='nearest')
plt.show()

如果您使用的是 Jupyter notebook/lab,请在导入 matplotlib 之前使用此内联命令:

 %matplotlib inline

更有特色的方法是安装 ipyml pip install ipympl 并使用

%matplotlib widget

看一个 例子

原文由 Steve Tjoa 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题