前言
仅供个人学习用,如果对各位朋友有参考价值,给个赞或者收藏吧 ^_^
Python中图像处理库PIL(Python Imaging Library,现已更名为Pillow)的ImageEnhance模块专门用于图像的增强处理,为开发者提供了便捷的接口来调整图像的亮度、对比度、色度和锐度等属性。以下是对该模块的详细介绍:
一、ImageEnhance模块的功能
ImageEnhance模块提供了一些用于图像增强的类。 所有的增强类都实现了一个通用的接口,包括一个方法:enhancer.enhance(factor) ⇒ image 该方法返回一个增强过的图像。变量factor是一个浮点数,控制图像的增强程度。
ImageEnhance模块包含四个主要的类,分别用于调整图像的亮度(Brightness)、对比度(Contrast)、色度(Color,即颜色饱和度)和锐度(Sharpness):
1. ImageEnhance模块的Color类(色度增强)
用于调整图像的颜色饱和度。创建一个增强对象,以调整图像的颜色。增强因子为0.0将产生黑白图像;为1.0将给出原始图像。
enhance()的参数factor决定着图像的颜色饱和度情况。从0.1到0.5,再到0.8,2.0,图像的颜色饱和度依次增大。(下面一行代码,浅浅演示一下,最下面二有代码展示)
img_color1 = ImageEnhance.Color(img).enhance(0.1)
2. ImageEnhance模块的Brightness类(亮度增强)
用于调整图像的亮度。增强因子越小,图像越暗;因子为1时保持原样;因子越大,图像越亮。
该函数enhance()的参数factor决定着图像的亮度情况。从0.1到0.5,再到0.8,2.0,图像的亮度依次增大。(下面一行代码,浅浅演示一下,最下面二有代码展示)
img_brightness1 = ImageEnhance.Brightness(img).enhance(0.2)
3. ImageEnhance模块的Contrast类(对比度增强)
用于调整图像的对比度。增强因子越小,图像对比度越低,趋向于灰色;因子为1时保持原样;因子越大,图像对比度越高。
该函数enhance()的参数factor决定着图像的对比度情况。从0.1到0.5,再到0.8,2.0,图像的对比度依次增大。(下面一行代码,浅浅演示一下,最下面二有代码展示)
img_contrast1 = ImageEnhance.Contrast(img).enhance(0.1)
4. ImageEnhance模块的Sharpness类(锐度增强)
用于调整图像的锐度。增强因子越小,图像越模糊;因子为1时保持原样;因子越大,图像锐度越高,但过高的因子可能导致图像出现不自然的边缘增强效果。
该函数enhance()的参数factor决定着图像的锐度情况。从0.0到2.0,再到3.0,图像的锐度依次增大。(下面一行代码,浅浅演示一下,最下面二有代码展示)
img_sharpness1 = ImageEnhance.Sharpness(img).enhance(0.0)
二、ImageEnhance模块的python代码举例
2.1 demo
import matplotlib.pyplot as plt
from PIL import Image, ImageEnhance
img = Image.open('E:/Desktop/jianli/lenna.png')
# ImageEnhance模块的Color类
img_color1 = ImageEnhance.Color(img).enhance(0.1)
img_color2 = ImageEnhance.Color(img).enhance(0.3)
img_color3 = ImageEnhance.Color(img).enhance(0.6)
img_color4 = ImageEnhance.Color(img).enhance(2.0)
# ImageEnhance模块的Brightness类
img_brightness1 = ImageEnhance.Brightness(img).enhance(0.2)
img_brightness2 = ImageEnhance.Brightness(img).enhance(0.5)
img_brightness3 = ImageEnhance.Brightness(img).enhance(0.8)
img_brightness4 = ImageEnhance.Brightness(img).enhance(2.0)
# ImageEnhance模块的Contrast类
img_contrast1 = ImageEnhance.Contrast(img).enhance(0.1)
img_contrast2 = ImageEnhance.Contrast(img).enhance(0.5)
img_contrast3 = ImageEnhance.Contrast(img).enhance(0.8)
img_contrast4 = ImageEnhance.Contrast(img).enhance(2.0)
# ImageEnhance模块的Sharpness类
img_sharpness1 = ImageEnhance.Sharpness(img).enhance(0.0)
img_sharpness2 = ImageEnhance.Sharpness(img).enhance(2.0)
img_sharpness3 = ImageEnhance.Sharpness(img).enhance(4.0)
img_sharpness4 = ImageEnhance.Sharpness(img).enhance(6.0)
# 显示图像
titles = ["color1", "color2", "color3", "color4",
"brightness1", "brightness2", "brightness3", "brightness4",
"contrast1", "contrast2", "contrast3", "contrast4",
"sharpness1", "sharpness2", "sharpness3", "sharpness4"]
images = [img_color1, img_color2, img_color3, img_color4,
img_brightness1, img_brightness2, img_brightness3, img_brightness4,
img_contrast1, img_contrast2, img_contrast3, img_contrast4,
img_sharpness1, img_sharpness2, img_sharpness3, img_sharpness4]
for i in range(16):
plt.subplot(4, 4, i+1), plt.imshow(images[i], cmap='gray'), plt.title(titles[i])
plt.xticks([]), plt.yticks([])
plt.show()