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