簡體   English   中英

如何從 matplotlib 獲取組合圖像作為變量?

[英]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_img1axes_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM