我不知道这个特定的过滤器,但我可以告诉你如何遵循PIL中的 Coincoin 步骤。我实际上并没有运行代码,但您可以将其用作参考:
加载源 JPEG 和目标 JPEG
from PIL import Image
img1 = Image.open('image1.jpg')
img2 = Image.open('image2.jpg')
将像素从 RGB 颜色空间转换为 L a b 颜色空间(或任何其他具有发光度信息的颜色空间)
# Color matrix for Lab
colorMatrix = (
x1, y1, z1, 0,
x2, y2, z2, 0,
x3, y3, z3, 0
)
img1 = img1.convert("RGB", colorMatrix)
img2 = img2.convert("RGB", colorMatrix)
保留目标颜色通道并用源的亮度替换其亮度通道
l1, a1, b1 = img1.split()
l2, a2, b2 = img2.split()
img1.putdata(zip(l1.getdata(), a2.getdata(), b2.getdata()))
转换回 RGB 空间
# Color matrix for RGB
RGBcolorMatrix = (
x1, y1, z1, 0,
x2, y2, z2, 0,
x3, y3, z3, 0
)
img1 = img1.convert("RGB", RGBcolorMatrix)
保存 JPEG
img1.save('new_image.jpg')