在python中保存单通道png文件和colormap

时间:2017-11-30 15:09:35

标签: python matplotlib

有人能举例说明如何在python中保存单通道索引图像及其颜色图吗? Matlab中的类似操作看起来像this

[img, cmap] = imread('myImg.png'); % cmap is a [256x3] 'double' array
imwrite(img, cmap, 'outfile.png'); 

我看到来自imsave的{​​{1}}可以选择指定色彩映射(matplotlib.pyplot),但我无法弄清楚如何提供自己的色彩映射:

cmap

给了我

import matplotlib.pyplot as plt
im = plt.imread('~/myImg.png')
my_cmap = np.array([(128,64,128),
                 (244,35,232),
                 (70,70,70),
                 (102,102,156),],dtype=np.float64)
plt.imsave('~/test.png',im, cmap=my_cmap)

当我尝试TypeError: unhashable type: 'numpy.ndarray' dict ...

时也会发生同样的情况

修改
遵循' dublicate'回答,输出图像的颜色仍然是错误的:

list

即使我在上面的示例中切换red = my_cmap[:,0] / 255.0 green = my_cmap[:,1] / 255.0 blue = my_cmap[:,2] / 255.0 cdict = { 'red' : red, 'green' : green, 'blue' : blue } my_cmap = matplotlib.colors.ListedColormap(cdict, name='my_colormap') plt.imsave('im_test.png',im, cmap=my_cmap) green,我的输出图像看起来也一样,所以格式似乎还有问题......

0 个答案:

没有答案