[英]How to get combined image from matplotlib as variable?
我有一個圖像和熱圖。 我用 im_show 繪制它們兩個
axes_img1 = plt.imshow(255 * normalized_heat_map, alpha=alpha, cmap=cmap)
axes_img2 = plt.imshow(image, interpolation='nearest')
plt.show()
axes_img1
和axes_img2
都僅用於圖像或熱圖, plt.show()
以我想要的方式顯示帶有熱圖的圖像。
如何在不保存任何文件的情況下獲取表示plt.show()
顯示內容的圖像(通常是 matplotlib 輸出AxesImage
類型)?
plt.show()
實際上調用canvas.draw()
並且它們在 ui 上顯示繪制的(緩沖)圖像。 因此,您需要調用canvas.draw()
並在 numpy 數組中獲取緩沖區。
def grab_buffer(fig):
data = np.fromstring(fig.canvas.tostring_rgb(), dtype=np.uint8, sep='')
data = data.reshape(fig.canvas.get_width_height()[::-1] + (3,))
return data
fig,ax = plt.subplots(2,1) # 2 rows, 1 column
ax.flat[0].imshow(255 * normalized_heat_map, alpha=alpha, cmap=cmap)
ax.flat[1].imshow(image, interpolation='nearest')
fig.canvas.draw()
img_as_numpy_array = grab_buffer(fig)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.