如何使用 Pillow 基于二进制掩码设置 PNG 的 RGB 值

问题描述 投票:0回答:1

我有一个 PNG 图像和一个黑白蒙版。这篇文章 (https://note.nkmk.me/en/python-pillow-putalpha/) 演示了如何使用

putalpha()
发送图像的 Alpha 通道,使遮蔽区域变得透明。我想知道Pillow中是否有任何功能可以真正将遮罩区域的RGB值更改为全部255?

以下是一个例子。结果图像应具有所有白色区域,实际上 RGB 值为 255,而不是仅将 alpha 设置为 0。

image-processing python-imaging-library png
1个回答
0
投票

你的问题对我来说没有多大意义。如果您在蒙版内将 RGB 值设置为 255,则图像将变为白色,并且您最终会得到您已经拥有的蒙版。

也许您的意思是您想保留 Lena 图片的其余部分,但只需将脸部设置为白色并保留图像的其余部分“原样”。如果是这种情况,您可以使用 Lighten 混合模式,该模式将简单地选择两个图像中每个位置的较亮像素 - 因此它将在蒙版为白色的地方选择白色,而在其他地方选择 Lena,因为这肯定会更亮比面具的黑色:

PIL import Image, ImageChops

# Load image and mask
im = Image.open('lena.jpg')
mask = Image.open('mask.png')

# Select whichever is lighter at each pixel location
res = ImageChops.lighter(im,mask)
res.save('result.png')

© www.soinside.com 2019 - 2024. All rights reserved.