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()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章