如何在python中将灰度更改为颜色?

时间:2018-03-19 10:54:03

标签: python matplotlib colors png pillow

我找到了以下链接:Python colour to greyscale

然而,我想做相反的事情。这是可能的Pyython(最好是PIL,但其他选项也喜欢matplotlib)?

我需要读一个灰度png图像,我想将其转换为彩虹尺度(最好是去饱和的彩虹,但不是必需的)。这些图像最初来自生成0到256之间数字的c代码,并将它们转换为灰色调。我想现在将这些值线性地映射到颜色图(但我目前只能访问png图像,而不是c代码)。那么有没有办法将白色映射到蓝色,从黑色映射到红色,其中彩虹的所有颜色都介于两者之间?

1 个答案:

答案 0 :(得分:2)

从颜色到灰色的映射不可反转。所以你需要确实像matplotlib colormaps那样定义一些颜色映射。

import matplotlib.pyplot as plt

# generate gray scale image
import scipy.misc
face = scipy.misc.face()
plt.imsave("face.png", face.mean(2), cmap="gray")

# read in image
im = plt.imread("face.png")
# plot image in color
plt.imshow(im.mean(2), cmap="jet_r")
#save image in color
plt.imsave("color.png", im.mean(2), cmap="jet_r")
plt.show()

enter image description here