hel*_*ker 108 python numpy matplotlib color-mapping python-imaging-library
我有一个简单的问题,但无法找到一个好的解决方案.
我想拍摄一个代表灰度图像的numpy 2D数组,并在应用一些matplotlib色彩图时将其转换为RGB PIL图像.
我可以使用以下pyplot.figure.figimage
命令获得合理的PNG输出:
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')
Run Code Online (Sandbox Code Playgroud)
虽然我可以调整它以获得我想要的东西(可能使用StringIO来获取PIL图像),我想知道是否有更简单的方法来做到这一点,因为它似乎是一个非常自然的图像可视化问题.让我们说,像这样:
colored_PIL_image = magic_function(array, cmap)
Run Code Online (Sandbox Code Playgroud)
谢谢阅读!
fra*_*xel 185
相当繁忙的一个班轮,但这里是:
myarray
使用最大值at进行标准化1.0
.myarray
.0-255
范围.np.uint8()
.Image.fromarray()
.而且你已经完成了:
from PIL import Image
from matplotlib import cm
im = Image.fromarray(np.uint8(cm.gist_earth(myarray)*255))
Run Code Online (Sandbox Code Playgroud)
用plt.savefig()
:
用im.save()
:
Ara*_*_gn 42
Image.fromarray -> 返回一个图像对象
from PIL import Image
import numpy as np
PIL_image = Image.fromarray(np.uint8(numpy_image)).convert('RGB')
PIL_image = Image.fromarray(numpy_image.astype('uint8'), 'RGB')
Run Code Online (Sandbox Code Playgroud)Shi*_*hah 10
即使在应用其评论中提到的更改后,已接受答案中描述的方法对我也不起作用。但下面的简单代码有效:
import matplotlib.pyplot as plt
plt.imsave(filename, np_array, cmap='Greys')
Run Code Online (Sandbox Code Playgroud)
np_array 可以是值从 0..1 浮点数 o2 0..255 uint8 的二维数组,在这种情况下它需要 cmap。对于 3D 数组,cmap 将被忽略。
归档时间: |
|
查看次数: |
155612 次 |
最近记录: |