You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pyplot从内存读取图像,避免使用临时文件?

避免临时文件,直接用Matplotlib处理numpy图像

你完全不需要用临时文件中转,matplotlib的imshow()可以直接接收numpy数组作为输入,原代码里的PIL Image转换、存盘、读盘步骤都是多余的,直接简化即可:

修改后的完整代码:

import pickle
import matplotlib.pyplot as plt
import numpy as np

# 加载数据
data = pickle.load(datafile)
image = data['img']
label = data['label']

# 创建画布,设置等比例
fig, ax = plt.subplots(1)
ax.set_aspect('equal')

# 直接传入numpy数组显示图像
ax.imshow(image)

# 绘制圆圈
for xx, yy in label:
    circle = plt.Circle((xx, yy), 10)
    ax.add_patch(circle)

plt.show()

关键细节说明:

  • 直接使用从pickle加载的image(numpy数组)传给ax.imshow(),跳过所有临时文件相关步骤
  • 如果你的image数组存在格式问题,可做简单调整:
    • 若为单通道灰度图但形状是(H,W,1),用image = image.squeeze()去掉多余维度
    • 若数值范围是0-255但dtype不是uint8,用image = image.astype(np.uint8)转换格式

内容的提问来源于stack exchange,提问作者cppsvx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 19:30:36