[英]How can i convert numpy array to pil image in memory?
我有熱圖,它是標准化的 2d numpy 數組
當我用 matplotlib 繪制它時:
axes_img = plt.imshow(255 * normalized_heat_map, alpha=alpha, cmap=cmap)
plt.show()
然而,當我將它轉換為 PIL 圖像然后再次繪制時
heatmap_image = Image.fromarray(np.uint8(axes_img.get_cmap()(axes_img.get_array()) * 255))
plt.imshow(np.asarray(heatmap_image))
plt.show()
如何在不保存到文件的情況下從 Matplotlib 獲取與一張相同的圖像?
函數imshow
將色標的限制調整為您正在繪制的數據的最小值和最大值。 如果記住這一點,就會意識到在將圖像數組轉換為 8 位數組之前必須對其進行歸一化。 這可以按如下方式完成:
scaled_img = (axes_img.get_array()-axes_img.get_clim()[0])/(axes_img.get_clim()[1]-axes_img.get_clim()[0])
heatmap_image = Image.fromarray(np.uint8(axes_img.get_cmap()(scaled_img) * 255))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.