Python Pillow - 模糊图像

模糊图像可以通过对图像应用过滤器来降低图像中的噪声水平来实现。 图像模糊是图像处理的重要方面之一。

Pillow 库中的 ImageFilter 类 提供了几个标准的图像过滤器。 通过调用 Image 对象的 filter() 方法,可以将图像过滤器应用于图像,所需过滤器类型在 ImageFilter 类中定义。

有多种技术可用于模糊图像,我们将讨论下面提到的技术。

  • 简单模糊

  • 盒子模糊

  • 高斯模糊

所有这三种技术都将使用"Image.filter()"方法将滤镜应用于图像。


简单模糊

它对通过特定内核或卷积矩阵指定的图像应用模糊效果。

语法

filter(ImageFilter.BLUR)

示例

#Import required Image library
from PIL import Image, ImageFilter

#Open existing image
OriImage = Image.open('images/boy.jpg')
OriImage.show()

blurImage = OriImage.filter(ImageFilter.BLUR)
blurImage.show()
#Save blurImage
blurImage.save('images/simBlurImage.jpg')

执行时,上述示例生成两个标准 PNG 显示实用程序窗口(在本例中为窗口 Photos 应用程序)。

原图

原始图像2

图像模糊

模糊图像

盒子模糊

在这个过滤器中,我们使用"半径"作为参数。 半径与模糊值成正比。

语法

ImageFilter.BoxBlur(radius)

这里,

  • Radius − 盒子在一个方向上的尺寸。

  • Radius 0 − 表示没有模糊并返回相同的图像。

  • RRadius 1 &minnus; 每个方向占用 1 个像素,即总共 9 个像素。


示例

#Import required Image library
from PIL import Image,
 
#Open existing image
OriImage = Image.open('images/boy.jpg')
OriImage.show()

#Applying BoxBlur filter
boxImage = OriImage.filter(ImageFilter.BoxBlur(5))
boxImage.show()

#Save Boxblur image
boxImage.save('images/boxblur.jpg')

输出

执行时,上述示例生成两个标准 PNG 显示实用程序窗口(在本例中为 Windows 照片应用程序)。

原图

原始图像3

图像模糊

模糊图像2

高斯模糊

此滤镜还使用参数半径,并通过一些算法更改完成与框模糊相同的工作。 简而言之,改变半径值,将生成不同强度的"高斯模糊"图像。

语法

ImageFilter.GaussianBlur(radius=2)

这里,

  • Radius – 模糊半径

示例

#Import required Image library
from PIL import Image, ImageFilter

#Open existing image
OriImage = Image.open('images/boy.jpg')
OriImage.show()

#Applying GaussianBlur filter
gaussImage = OriImage.filter(ImageFilter.GaussianBlur(5))
gaussImage.show()

#Save Gaussian Blur Image
gaussImage.save('images/gaussian_blur.jpg')

输出

执行时,上述示例生成两个标准 PNG 显示实用程序窗口(在本例中为窗口 Photos 应用程序)。

原图

原始图像4

图像模糊

模糊图像3