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")
色彩校正的实际应用
- 照片处理: 调整亮度和对比度可以提高照片细节的可见度,而滤镜可以使图像更加醒目。
- 图像分析准备: 转换为黑白、增强锐度和对比度可以使图像更清晰,更适合分析。
- 图像风格化: 调整饱和度和应用滤镜可以为设计项目创建独特的风格和效果。
GO TO FULL VERSION