Python Pillow - ImageChops.screen() 函式



Python 影像處理庫 Pillow (PIL) 的 ImageChops 模組提供了一系列函式,用於對影像執行算術運算。除了這些運算之外,該模組還提供專門為影像混合模式運算設計的函式。這些混合模式之一就是螢幕模式。

PIL 中的 ImageChops.screen 函式使用螢幕混合模式將兩張反轉的影像疊加在一起。

該運算定義如下:

$$\mathrm{out\:=\:MAX\:-\:((MAX\:-\:image1)\:*\:(MAX\:-\:image2)\:/\:MAX)}$$

語法

以下是該函式的語法:

PIL.ImageChops.screen(image1, image2)

引數

以下是此函式引數的詳細資訊:

  • image1 - 第一個模式為“1”的輸入二值影像。

  • image2 - 第二個模式為“1”的輸入二值影像。

返回值

此函式的返回型別為 Image。

示例

示例 1

這是另一個示例,演示了 ImageChops.screen() 函式將兩張反轉的影像疊加在一起的工作方式。

from PIL import Image, ImageChops
import numpy as np

# Create the two input images using numpy arrays
array1 = np.array([(154, 64, 3), (255, 0, 0), (255, 255, 0), (255, 255, 255), (164, 0, 3)], dtype=np.uint8)
array2 = np.array([(200, 14, 3), (20, 222, 0), (255, 155, 0), (255, 55, 100), (180, 0, 78)], dtype=np.uint8)

image1 = Image.fromarray(array1)
image2 = Image.fromarray(array2)

# Display the pixel values of the two input images
print("Pixel values of image1 at (0, 0):", image1.getpixel((0, 0)))
print("Pixel values of image2 at (0, 0):", image2.getpixel((0, 0)))

# Additionally, demonstrate the use of the screen blend mode
result_screen = ImageChops.screen(image1, image2)

# Display the pixel values of the resulting image at (0, 0) after screen blend mode
print("Pixel values of the result at (0, 0) after screen blend mode:", result_screen.getpixel((0, 0)))

輸出

Pixel values of image1 at (0, 0): 154
Pixel values of image2 at (0, 0): 200
Pixel values of the result at (0, 0) after screen blend mode: 234

示例 2

在此示例中,PIL.ImageChops.screen() 函式應用於兩張 PNG 影像,以將兩張反轉的影像疊加在一起。

from PIL import Image, ImageChops

# Open the two image files
image1 = Image.open("Images/pillow-logo-w.png")
image2 = Image.open("Images/ColorDots.png")

# Apply the Screen algorithm
result = ImageChops.screen(image1, image2)

# Display the input and resulting images
image1.show()
image2.show()
result.show()

輸出

輸入影像 1

pillow logo w

輸入影像 2

color dots

輸出影像

imagechops screen

示例 3

這是另一個示例,它將 PIL.ImageChops.overlay() 函式應用於兩張 JPEG 影像。

from PIL import Image, ImageChops

# Open the two image files
image1 = Image.open("Images/Tajmahal_2.jpg")
image2 = Image.open("Images/Flower1.jpg")

# Apply the Screen algorithm
result = ImageChops.screen(image1, image2)

# Display the input and resulting images
image1.show()
image2.show()
result.show()

輸出

輸入影像 1

tajmahal birds

輸入影像 2

flower

輸出影像

chops screen
python_pillow_function_reference.htm
廣告