plt 生成的图片写入内存

import matplotlib.pyplot as plt
import pylab
import imageio
import skimage.io
import cv2
import io
import PIL

#例如要显示的
frame1 = plt.gca()
frame1.axes.get_xaxis().set_visible(False)
frame1.axes.get_yaxis().set_visible(False)
plt.imshow(np.random.random((10,10)))

#申请缓冲地址
buffer = io.BytesIO()#using buffer,great way!
#把plt的内容保存在内存中
plt.savefig(buffer,format = 'png')

然后就可以读取内存中的数据

#用PIL或CV2从内存中读取
dataPIL = PIL.Image.open(buffer)
#转换为nparrary
data = np.asarray(dataPIL)
cv2.imshow('image', data)
#释放缓存    
buffer_.close()

#或者直接读取二进制,转换base64
base64_png = base64.b64encode(buffer.getvalue())
plt.close()
buffer.close()

 

你可能感兴趣的:(python)