繁体   English   中英

使用 Pillow 为灰度图像着色

[英]Colourize a grayscale image using Pillow

我有一个使用 Pillow 创建的灰度图像——它的模式L我想将它保存为单一颜色的阴影,这样它就不是从黑色到白色的阴影,而是从青色到白色的阴影。

所以,假设我正在这样做:

from PIL import Image, ImageOps

i = Image.open("old_img.jpg")
g = ImageOps.grayscale(i)
g.save("new_img.jpg")

我该怎么做才能将其保存为青色到白色,而不是黑色到白色? 对于洋红色到白色和黄色到白色的其他灰度图像,我也会做类似的事情。

将图像转换为“L”模式(亮度、灰度),然后使用.colorize()方法而不是.grayscale() () 方法:

from PIL import Image, ImageOps

i = Image.open("old_img.jpg").convert("L")
g = ImageOps.colorize(i, black="cyan", white="white")
g.save("new_img.jpg")

或者只是添加命令

g = ImageOps.colorize(g, black="cyan", white="white")

应用.grayscale(i)方法后(因为它也将图像转换为“L”模式):

from PIL import Image, ImageOps

i = Image.open("old_img.jpg")
g = ImageOps.grayscale(i)
g = ImageOps.colorize(g, black="yellow", white="white")
g.save("new_img.jpg")

您可以在.colorize()方法的black=参数中设置其他所需的颜色。

您可以使用matplotlib.imshow做到这一点:

from PIL import Image, ImageOps
import matplotlib.pyplot as plt
import numpy as np 

i = Image.open("frog.jpg")
g = ImageOps.grayscale(i)

fig, ax = plt.subplots(1, 1)
ax.imshow(np.array(g), cmap=plt.cm.Blues)
plt.show()

结果:

青蛙的原始图像蓝色的青蛙

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM