Pillow图像降噪处理

由于成像设备、传输媒介等因素的影响,图像总会或多或少的存在一些不必要的干扰信息,我们将这些干扰信息统称为“噪声”

如数字图像中常见的“椒盐噪声”,指的是图像会随机出现的一些白、黑色的像素点。图像噪声既影响了图像的质量,又妨碍人们的视觉观赏。因此,噪声处理是图像处理过程中必不可少的环节之一,我们把处理图像噪声的过程称为“图像降噪”。

随着数字图像技术的不断发展,图像降噪方法也日趋成熟,通过某些算法来构造滤波器是图像降噪的主要方式。滤波器能够有效抑制噪声的产生,并且不影响被处理图像的形状、大小以及原有的拓扑结构。

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

使用 ImageFilter 类也会返回一个新对象

常见的降噪滤波器如下

模糊处理

1
2
3
4
from PIL import Image, ImageFilter
img = Image.open("D:\\File\\All\\web\\python\\blog\\947849.jpg")
img1 = img.filter(ImageFilter.BLUR)
img1.show()

轮廓图

1
2
3
4
from PIL import Image, ImageFilter
img = Image.open("D:\\File\\All\\web\\python\\blog\\947849.jpg")
img1 = img.filter(ImageFilter.CONTOUR)
img1.show()

边缘检测

1
2
3
4
from PIL import Image, ImageFilter
img = Image.open("D:\\File\\All\\web\\python\\blog\\947849.jpg")
img1 = img.filter(ImageFilter.FIND_EDGES)
img1.show()

浮雕图

1
2
3
4
from PIL import Image, ImageFilter
img = Image.open("D:\\File\\All\\web\\python\\blog\\947849.jpg")
img1 = img.filter(ImageFilter.EMBOSS)
img1.show()

可以一个一个试试里面的不同的滤波器,还是挺好玩的 ,这里面这个轮廓图加上界面的话可以弄一个画素描的程序出来,但是一般都是用opencv里面的玩

Pillow图像颜色处理

Pillow 提供了颜色处理模块 ImageColor,该模块支持不同格式的颜色,比如 RGB 格式的颜色三元组、十六进制的颜色名称(#ff0000)以及颜色英文单词(”red”)。同时,它还可以将 CSS(层叠样式表,用来修饰网页)风格的颜色转换为 RGB 格式。

注意,在 ImageColor 模块对颜色的大小写并不敏感,比如 “Red” 也可以写为 “ red”。

颜色命名

ImageColor 支持多种颜色模式的的命名(即使用固定的格式对颜值进行表示),比如我们熟知的
RGB 色彩模式,除此之外,还有 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% 则表示白色。

getrgb()方法顾名思义,该函数用来得到颜色的 RGB 值,语法格式如下:

PIL.ImageColor.getrgb(color)

1
2
3
4
5
6
7
from PIL import Image,ImageColor
color1=ImageColor.getrgb("blue")
print(color1)
color2=ImageColor.getrgb('#DCDCDC')
print(color2)
color3=ImageColor.getrgb('HSL(0,100%,50%)')
print(color3)