使用 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")
如何将其保存为青色到白色,而不是黑色到白色?我打算对洋红色到白色和黄色到白色的其他灰度图像做类似的事情。
您可以使用 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()
结果:
将您的图像转换为“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=
参数中设置其他所需的颜色。
我有一个使用 Pillow 创建的灰度图像 – 它是模式 L
– 我想将它保存为单一颜色的阴影,这样就不是从黑到白的阴影,而是从青色到白色的阴影。
所以,假设我是这样做的:
from PIL import Image, ImageOps
i = Image.open("old_img.jpg")
g = ImageOps.grayscale(i)
g.save("new_img.jpg")
如何将其保存为青色到白色,而不是黑色到白色?我打算对洋红色到白色和黄色到白色的其他灰度图像做类似的事情。
您可以使用 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()
结果:
将您的图像转换为“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=
参数中设置其他所需的颜色。