Python Pillow - 图像混合



图像混合 是将两张或多张图像组合或混合以创建新图像的过程。一种常见的图像混合方法是使用 alpha 混合。在 alpha 混合中,结果中的每个像素都是根据输入图像中相应像素的加权和计算的。表示透明度的 alpha 通道用作权重因子。

此技术通常用于图形、图像处理和计算机视觉中,以实现各种视觉效果。

Python Pillow 库在其 Image 模块中提供 `blend()` 函数来对图像执行混合操作。

`Image.blend()` 函数

此函数提供了一种通过指定混合因子 (alpha) 来在两张图像之间创建平滑过渡的便捷方法。该函数通过使用常量 alpha 值在两个输入图像之间进行插值来创建新图像。插值根据以下公式执行:

out=image1×(1.0−alpha)+image2×alpha

以下是该函数的语法:

PIL.Image.blend(im1, im2, alpha)

其中:

  • im1 - 第一张图像。

  • im2 - 第二张图像。它必须与第一张图像具有相同的模式和大小。

  • alpha - 插值 alpha 系数。如果 alpha 为 0.0,则返回第一张图像的副本。如果 alpha 为 1.0,则返回第二张图像的副本。对 alpha 值没有限制。如有必要,结果将被裁剪以适合允许的输出范围。

示例

让我们来看一个使用Image.blend() 方法混合两张图像的基本示例。

from PIL import Image

# Load two images
image1 = Image.open("Images/ColorDots.png")
image2 = Image.open("Images/pillow-logo-w.png")

# Blend the images with alpha = 0.5
result = Image.blend(image1, image2, alpha=0.5)

# Display the input and resultant iamges
image1.show()
image2.show()
result.show()

输入图像

color dots pillow logo

输出

resultant images

示例

这是一个演示使用 alpha 值为 2 的 PIL.Image.blend() 的示例。

from PIL import Image

# Load two images
image1 = Image.open("Images/ColorDots.png")
image2 = Image.open("Images/pillow-logo-w.png")

# Blend the images with alpha = 2
result = Image.blend(image1, image2, alpha=2)

# Display the input and resultant iamges
image1.show()
image2.show()
result.show()

输入图像

color dots pillow logo

输出

image blend

示例

这是一个演示使用 alpha 值为 1.0 的 PIL.Image.blend() 的示例。它将返回第二张图像的副本。

from PIL import Image

# Load two images
image1 = Image.open("Images/ColorDots.png")
image2 = Image.open("Images/pillow-logo-w.png")

# Blend the images with alpha = 2
result = Image.blend(image1, image2, alpha=1.0)

# Display the input and resultant iamges
image1.show()
image2.show()
result.show()

输入图像

color dots pillow logo

输出

pillow logo
广告