CodeGym /Java 课程 /Python SELF ZH /处理颜色和调整图像

处理颜色和调整图像

Python SELF ZH
第 45 级 , 课程 4
可用

1. 更改色彩模式

图像可以表示为不同的色彩模式,例如:

  • RGB: 标准彩色模式。
  • L: 灰度。
  • CMYK: 用于打印。
  • RGBA: RGB + alpha 通道(用于透明度)。

可以使用convert()方法将图像转换为其他色彩模式。

转换为灰度

要将图像转换为黑白,请使用色彩模式L


# 转换为灰度
gray_image = image.convert("L")
gray_image.save("gray_example.jpg")

这段代码将图像转换为黑白并保存到文件gray_example.jpg。如果你希望创建黑白风格或为了分析只需要亮度级别,这会很有用。

转换为 CMYK 模式

CMYK 通常用于打印。如果图像是为打印准备的,将其转换为这种模式可能很有用。


# 转换为 CMYK
cmyk_image = image.convert("CMYK")
cmyk_image.save("cmyk_example.jpg")

2. 对图像应用滤镜

Pillow 提供了一些内置滤镜,可以用来创建各种效果。这些滤镜位于ImageFilter模块中。

应用模糊、轮廓和锐化滤镜


from PIL import ImageFilter

# 应用模糊滤镜
blurred_image = image.filter(ImageFilter.BLUR)
blurred_image.save("blurred_example.jpg")

# 应用轮廓滤镜
contour_image = image.filter(ImageFilter.CONTOUR)
contour_image.save("contour_example.jpg")

# 应用锐化滤镜
sharpened_image = image.filter(ImageFilter.SHARPEN)
sharpened_image.save("sharpened_example.jpg")

这里我们应用了三种不同的滤镜:

  • BLUR: 模糊图像,用于创建柔和效果。
  • CONTOUR: 突出图像中对象的轮廓。
  • SHARPEN: 增加锐度,使图像更清晰。

其他滤镜

Pillow 中的一些其他有用滤镜:

  • DETAIL: 突出细节。
  • EDGE_ENHANCE: 增强边缘。
  • SMOOTH: 平滑图像。

# 应用边缘增强滤镜
edge_image = image.filter(ImageFilter.EDGE_ENHANCE)
edge_image.save("edge_enhance_example.jpg")

3. 调整亮度、对比度、锐度和饱和度

Pillow 中的ImageEnhance模块可以轻松调整图像的亮度、对比度、锐度和颜色饱和度。

调整亮度

要更改亮度,请使用ImageEnhance.Brightness类。亮度系数可以是任意数字:1.0 — 原始亮度,小于1.0 — 变暗,大于1.0 — 增加亮度。


from PIL import ImageEnhance

# 更改亮度
enhancer = ImageEnhance.Brightness(image)
brighter_image = enhancer.enhance(1.5)  # 增加亮度 50%
brighter_image.save("brighter_example.jpg")

调整对比度

对比度使亮区更亮,暗区更暗。要调整对比度,请使用ImageEnhance.Contrast


# 更改对比度
enhancer = ImageEnhance.Contrast(image)
higher_contrast_image = enhancer.enhance(1.5)  # 增加对比度 50%
higher_contrast_image.save("higher_contrast_example.jpg")

调整锐度

锐度决定了图像中对象边缘的清晰程度。要调整锐度,使用ImageEnhance.Sharpness


# 更改锐度
enhancer = ImageEnhance.Sharpness(image)
sharper_image = enhancer.enhance(2.0)  # 增加锐度 2 倍
sharper_image.save("sharper_example.jpg")

1.0 保持原始锐度,小于1.0 使图像更模糊,大于1.0 使图像更锐利。

调整颜色饱和度

颜色饱和度使颜色更或更不饱和。要更改饱和度,请使用ImageEnhance.Color


# 更改饱和度
enhancer = ImageEnhance.Color(image)
more_vibrant_image = enhancer.enhance(1.5)  # 增加饱和度 50%
more_vibrant_image.save("more_vibrant_example.jpg")

4. 图像校正方法比较

方法 描述 应用
convert("L") 将图像转换为黑白模式 黑白风格,亮度分析
ImageFilter 应用模糊、锐化等滤镜 效果叠加,突出对象
ImageEnhance.Brightness 调整图像亮度 增亮或变暗
ImageEnhance.Contrast 调整对比度 提升细节可见性
ImageEnhance.Sharpness 调整锐度 突出边缘,增强清晰度
ImageEnhance.Color 调整颜色饱和度 创建鲜艳、饱和的图像

5. 示例

图像完整处理示例

我们将结合上述所有内容,创建一个代码,该代码执行多个阶段的色彩校正,应用滤镜,并调整亮度、对比度和饱和度。


from PIL import Image, ImageEnhance, ImageFilter

# 加载图像
image = Image.open("example.jpg")

# 转换为黑白模式
gray_image = image.convert("L")
gray_image.save("gray_example.jpg")

# 应用锐化滤镜
sharpened_image = gray_image.filter(ImageFilter.SHARPEN)
sharpened_image.save("sharpened_gray_example.jpg")

# 增加亮度
enhancer = ImageEnhance.Brightness(sharpened_image)
brighter_image = enhancer.enhance(1.3)  # 亮度增加 30%
brighter_image.save("brighter_gray_example.jpg")

# 增加对比度
enhancer = ImageEnhance.Contrast(brighter_image)
higher_contrast_image = enhancer.enhance(1.5)  # 对比度增加 50%
higher_contrast_image.save("final_example.jpg")

色彩校正的实际应用

  • 照片处理: 调整亮度和对比度可以提高照片细节的可见度,而滤镜可以使图像更加醒目。
  • 图像分析准备: 转换为黑白、增强锐度和对比度可以使图像更清晰,更适合分析。
  • 图像风格化: 调整饱和度和应用滤镜可以为设计项目创建独特的风格和效果。
1
Опрос
使用 Pillow 处理图像,  45 уровень,  4 лекция
недоступен
使用 Pillow 处理图像
使用 Pillow 处理图像
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION