Python中图像处理库PIL的ImageEnhance模块

前言

        仅供个人学习用,如果对各位朋友有参考价值,给个赞或者收藏吧 ^_^

        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()

2.2 output

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值