我有一个简单的问题,但我找不到一个好的解决方案。
我想采用代表灰度图像的 NumPy 2D 数组,并在应用一些 matplotlib 颜色图时将其转换为 RGB PIL 图像。
pyplot.figure.figimage我可以使用以下命令获得合理的 PNG 输出:
pyplot.figure.figimage
dpi = 100.0 w, h = myarray.shape[1]/dpi, myarray.shape[0]/dpi fig = plt.figure(figsize=(w,h), dpi=dpi) fig.figimage(sub, cmap=cm.gist_earth) plt.savefig('out.png')
虽然我可以调整它以获得我想要的东西(可能使用 StringIO 得到 PIL 图像),但我想知道是否没有更简单的方法可以做到这一点,因为它似乎是图像可视化的一个非常自然的问题。比方说,像这样:
colored_PIL_image = magic_function(array, cmap)
相当繁忙的单线,但这里是:
myarray
1.0
0-255
np.uint8()
Image.fromarray()
你完成了:
from PIL import Image from matplotlib import cm im = Image.fromarray(np.uint8(cm.gist_earth(myarray)*255))
与plt.savefig():
plt.savefig()
与im.save():
im.save()