Python Pillow(PIL) ImageFilter和ImageColor的使用

Pillow(PIL)是Python平台事实上的图像处理标准库,支持多种格式,并提供强大的图形与图像处理功能。PIL 模块全称为 Python Imaging Library,是Python中一个免费的图像处理模块。PIL 仅支持到 Python 2.7。Python3用的是PIL的兼容版本Pillow。本文主要介绍Pillow(PIL) ImageFilter和ImageColor的使用。

1、Pillow(PIL)的安装及常用操作

参数文档Python Pillow(PIL)安装及Image 类的使用

2、ImageFilter

ImageFilter 类可以达到图像降噪的目的,集成了不同种类的滤波器,通过调用它们从而实现图像的平滑、锐化、边界增强等图像降噪操作。

1)图像降噪滤波器

名称

说明

ImageFilter.BLUR

模糊滤波,即均值滤波

ImageFilter.CONTOUR

轮廓滤波,寻找图像轮廓信息

ImageFilter.DETAIL

细节滤波,使得图像显示更加精细

ImageFilter.FIND_EDGES

寻找边界滤波(找寻图像的边界信息)

ImageFilter.EMBOSS

浮雕滤波,以浮雕图的形式显示图像

ImageFilter.EDGE_ENHANCE

边界增强滤波

ImageFilter.EDGE_ENHANCE_MORE

深度边缘增强滤波

ImageFilter.SMOOTH

平滑滤波

ImageFilter.SMOOTH_MORE

深度平滑滤波

ImageFilter.SHARPEN

锐化滤波

ImageFilter.GaussianBlur()

高斯模糊

ImageFilter.UnsharpMask()

反锐化掩码滤波

ImageFilter.Kernel()

卷积核滤波

ImageFilter.MinFilter(size)

最小值滤波器,从 size 参数指定的区域中选择最小像素值,然后将其存储至输出图像中。

ImageFilter.MedianFilter(size)

中值滤波器,从 size 参数指定的区域中选择中值像素值,然后将其存储至输出图像中。

ImageFilter.MaxFilter(size)

最大值滤波器

ImageFilter.ModeFilter()

模式滤波

2)使用示例

from PIL import Image, ImageFilter

img = Image.open(r"D:\cjavapy.jpg")
im_ft = img.filter(ImageFilter.EMBOSS)  # 添加浮雕滤波器,相当于PS里面添加的滤镜
im_ft.show()

3、ImageColor

ImageColor模块支持不同格式的颜色,比如 RGB 格式的颜色三元组、十六进制的颜色名称(#ff0000)以及颜色英文单词。还有 HSL (色调-饱和度-明度)、HSB (又称 HSV,色调-饱和度-亮度)色彩模式。HSL分别为:

H:即 Hue 色调,取值范围 0 -360,其中 0 表示“red”,120 表示 “green”,240 表示“blue”。

S:即 Saturation 饱和度,代表色彩的纯度,取值 0~100%,其中 0 代表灰色(gry),100% 表示色光最饱和。

L:即 Lightness 明度,取值为 0~100%,其中 0 表示“black”黑色,50% 表示正常颜色,100% 则表示白色。

ImageColor 模块包括getrgb()getcolor() ,如下,

from PIL import Image, ImageColor

"""
getrgb(color)
参数color为上述支持的颜色字符串
"""
im = Image.new(mode="RGB", size=(100, 100), color=ImageColor.getrgb('HSL(0,100%,50%)'))
im.show()
"""
参数:

color:一个颜色名称,字符串格式,可以是颜色的英文单词,或者十六进制颜色名。如果是不支持的颜色,会报 ValueError 错误
mode:指定色彩模式,如果是不支持的模式,会报 KeyError 错误
"""
print(ImageColor.getcolor("red","RGBA"))  #(255, 0, 0, 255)
print(ImageColor.getcolor("red","P"))     #(255, 0, 0)
print(ImageColor.getcolor("red","L"))     #76
print(ImageColor.getcolor("red","1"))     #76

相关文档:

Python Pillow(PIL)安装及Image 类的使用

Python Pillow(PIL) 图像处理(分离、合并、裁剪、几何变换)

推荐阅读
cjavapy编程之路首页