Python Pillow 简明教程

Python Pillow - Merging Images

Pillow (PIL) 库用于合并或组合图像的各个波段以创建新的多波段图像。当处理多光谱或多通道图像(例如 RGB 或 CMYK 图像)并且我们希望通过合并特定波段来创建新图像时,这将特别有用。

在 Pillow 中,我们有 merge() 方法,它属于 Image 模块,用于合并给定的输入图像。

此方法对于以下任务很有用:合并卫星或医疗图像的多个通道、创建自定义彩色图像或处理具有需要组合到单个图像中的单独通道的图像。

以下是 Image.merge() 方法的语法和用法−

Image.merge(mode, bands)

其中,

  1. mode − 此参数指定新多波段图像的模式。它应与我们要合并的各个波段的模式相匹配。常用模式包括彩色图像的“RGB”、“带 alpha 通道的图像”的“RGBA”,以及青、品、黄、黑色彩空间的“CMYK”。

  2. bands − 此参数是我们希望合并的各个图像波段的元组。每个波段应是单通道图像或灰度图像。

Example

以下是使用 Image.merge() 方法合并图像的红色、绿色和蓝色波段以创建新的 RGB 图像的示例。

from PIL import Image
image = Image.open("Images/butterfly.jpg")
r, g, b = image.split()
image = Image.merge("RGB", (b, g, r))
image.show()

Image to be used

butterfly original image

Output

blue butterfly

Example

在此示例中,我们使用 Pillow 库中 Image 模块的 merge() 方法合并两个输入图像。

from PIL import Image
image1 = Image.open("Images/butterfly.jpg")
image2 = Image.open("Images/hand writing.jpg")

#resize, first image
image1 = image1.resize((426, 240))
image1_size = image1.size
image2_size = image2.size
new_image = Image.new("RGB",(2*image1_size[0], image1_size[1]), (250,250,250))
new_image.paste(image1,(0,0))
new_image.paste(image2,(image1_size[0],1))
new_image.save("output Image/merged.jpg")
new_image.show()

The two images to be merged

butterfly original image
expanded image

Output

two images merged