首页 > 解决方案 > 如何使用 matplotlib 保存图像而不显示它们?

问题描述

我有多个(以百万计)需要保存的 numpy 二维数组。可以像这样保存单个图像:

import numpy as np
import matplotlib.pyplot as plt

surface_profile = np.empty((50,50)) #numpy array to be saved
plt.figure()
plt.imshow(surface_profile)
save_filename='filename.png'
plt.savefig(save_filename)

但是,此过程也会显示我不需要的图像。如果我像这样继续保存数百万张图像,我应该以某种方式避免 matplotlib 的 imshow() 函数。有什么帮助???

PS:我忘了提到我正在使用 Spyder。

标签: python-3.xnumpymatplotlib

解决方案


您的问题是plt.imshow(surface_profile)用于创建图像,因为这也将始终显示图像。

这可以使用 来完成PIL,请尝试以下操作,

from PIL import Image
import numpy as np

surface_profile = np.empty((50,50)) #numpy array to be saved
im = Image.fromarray(surface_profile)
im = im.convert('RGB')
save_filename="filename.png"
im.save(save_filename, "PNG")

推荐阅读