python-3.x - 如何使用 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。
解决方案
您的问题是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")
推荐阅读
- node.js - 如何将 ssl private-key.txt 转换为 private.key 扩展名
- c# - Xamarin 在页面之间传递参数
- c# - C# xls & xlsx 查询从工作表中选择,而不考虑工作表名称
- c# - Cortana 是否支持 webhook/调用外部 API?
- php - 内核中的身份验证声明和 laravel 中的路由无法正常工作
- emacs - 如何在 magit 中暂存/提交当前缓冲区?
- java - 从 JDBC 连接到 MSSQL 服务器时出现 Windows 身份验证问题
- java - FLAG_DIM_BEHIND 导致 android oreo 滞后
- kotlin - 需要改进“非常尴尬”的 Rx 逻辑来组合不同的数据源
- javascript - 在 javascript 中拆分和合并 Ranges 数组