Python Pillow - ImageOps.Colorize() 函数



PIL.ImageOps.colorize() 函数用于将灰度图像着色。它计算一个颜色楔形,将源图像中的所有黑色像素映射到第一种颜色,将所有白色像素映射到第二种颜色。如果指定了中间色 (mid),则使用三色映射。黑白参数应作为 RGB 元组或颜色名称提供。可以选择通过包含 mid 参数来进行三色映射。对于每种颜色,可以使用诸如 blackpoint 的参数定义映射位置,该参数表示一个整数,指示应将相应颜色映射到的位置。必须为这些参数保持逻辑顺序,确保 blackpoint 小于或等于 midpoint,而 midpoint 小于或等于 whitepoint(如果指定了 mid)。

语法

以下是该函数的语法:

PIL.ImageOps.colorize(image, black, white, mid=None, blackpoint=0, whitepoint=255, midpoint=127)

参数

以下是该函数参数的详细信息:

  • image - 要着色的灰度图像。

  • black - 用于黑色输入像素的颜色,指定为 RGB 元组或颜色名称。

  • white - 用于白色输入像素的颜色,指定为 RGB 元组或颜色名称。

  • mid - 用于中间色输入像素的颜色,指定为 RGB 元组或颜色名称(三色映射可选)。

  • blackpoint - 整数值 [0, 255],表示黑色颜色的映射位置。

  • whitepoint - 整数值 [0, 255],表示白色颜色的映射位置。

  • midpoint - 整数值 [0, 255],表示中间色的映射位置(三色映射可选)。

返回值

该函数返回表示着色结果的图像。

示例

示例 1

这是一个使用基本参数的 ImageOps.colorize() 函数使用方法示例。

from PIL import Image, ImageOps

# Open a grayscale image
gray_image = Image.open("Images/flowers_1.jpg").convert("L")

# Define colors for mapping
red = (255, 0, 0)   
cyan = (0, 255, 255)     

# Apply colorize operation
colorized_image = ImageOps.colorize(gray_image, black=red, white=cyan)

# Display the original and colorized images
gray_image.show()
colorized_image.show()

输出

输入图像

输出图像

imageops colorize

示例 2

此示例演示了使用可选的三色映射对灰度图像进行着色。

from PIL import Image, ImageOps

# Open a grayscale image
gray_image = Image.open("Images/Car_2.jpg").convert("L")

# Define colors for mapping
black_color = 'yellow'
white_color = 'red'
mid_color =  'cyan'  # color name (optional for three-color mapping)

# Define mapping positions
blackpoint = 50
whitepoint = 200
midpoint = 127

# Apply colorize operation
colorized_image = ImageOps.colorize(gray_image, black_color, white_color, mid_color, blackpoint, whitepoint, midpoint)

# Display the original and colorized images
gray_image.show()
colorized_image.show()

输出

输入图像

输出图像

ops colorize

示例 3

此示例演示如何使用不同的颜色和映射位置应用 colorize 函数以实现独特的着色结果。

from PIL import Image, ImageOps

# Open a grayscale image
gray_image = Image.open("Images/Car_2.jpg").convert("L")

# Define colors for mapping (RGB tuple)
warm_black = (10, 10, 10)  
cool_white = (200, 220, 255)  
neutral_gray = (128, 128, 128)  

# Define mapping positions
blackpoint = 30
whitepoint = 200
midpoint = 120

# Apply colorize operation with custom colors and mapping positions
colorized_image = ImageOps.colorize(gray_image, warm_black, cool_white, neutral_gray, blackpoint, whitepoint, midpoint)

# Display the original and colorized images
gray_image.show()
colorized_image.show()

输出

输入图像

输出图像

ops colorize image
python_pillow_function_reference.htm
广告