📜  PythonPillow-向图像添加滤镜

📅  最后修改于: 2020-11-07 07:49:28             🧑  作者: Mango


ImageFilter模块包含一组预定义的滤镜的定义,这些定义与Image.filter()方法一起使用。这些滤镜用于更改图像的外观。

下面的例子是过滤图像-

from PIL import Image, ImageFilter

im = Image.open('jungleSaf2.jpg')

im1 = im.filter(ImageFilter.BLUR)
im1.show()

im2 = im.filter(ImageFilter.MinFilter(3))
im2.show()

im3 = im.filter(ImageFilter.MinFilter) # same as MinFilter(3)
im3.show()

在上面的程序中,我们使用了MinFilter()方法,该方法用于创建最小过滤器。它在具有给定大小的窗口中选择最低的像素值。

ImageFilter.MinFilter(size=3)

哪里,

大小-内核大小,以像素为单位。

输出

如果保存上述程序并执行,它将使用标准PNG显示实用程序使用MinFilter显示原始图像,模糊图像以及模糊图像,如下所示-

原始图片

原始图像

影像模糊

图像模糊6

用微型滤镜模糊的图像

迷你滤镜模糊的图像

筛选器

当前版本的枕头库提供了以下预定义的图像增强过滤器集。

  • 模糊

  • 轮廓

  • 详情

  • EDGE_ENHANCE

  • EDGE_ENHANCE_MORE

  • 电磁波

  • 寻找边缘

  • 夏普

  • 光滑

  • SMOOTH_MORE

以下Python示例将模糊滤镜应用于图像,将其保存并使用标准PNG显示实用程序将其显示-

#Import required image modules
from PIL import Image, ImageFilter

#Import all the enhancement filter from pillow

from PIL.ImageFilter import (
   BLUR, CONTOUR, DETAIL, EDGE_ENHANCE, EDGE_ENHANCE_MORE,
   EMBOSS, FIND_EDGES, SMOOTH, SMOOTH_MORE, SHARPEN
)

#Create image object
img = Image.open('images/cat.jpg')
#Applying the blur filter
img1 = img.filter(BLUR)
img1.save('images/ImageFilter_blur.jpg')
img1.show()

输出

影像滤镜

以相同的方式,可以将以下任何参数传递给image.filter()方法以获取相应的输出-

  • 轮廓

  • 详情

  • EDGE_ENHANCE

  • EDGE_ENHANCE_MORE

  • 电磁波

  • 寻找边缘

  • 光滑

  • SMOOTH_MORE

  • 夏普

Python img.filter(CONTOUR)方法

以下Python示例将CONTOUR过滤器应用于给定图像。

#Import required image modules
from PIL import Image, ImageFilter

#Import all the enhancement filter from pillow
from PIL.ImageFilter import (
   BLUR, CONTOUR, DETAIL, EDGE_ENHANCE, EDGE_ENHANCE_MORE,
   EMBOSS, FIND_EDGES, SMOOTH, SMOOTH_MORE, SHARPEN
)
#Create image object
img = Image.open('images/cat.jpg')
#Applying the blur filter
img1 = img.filter(CONTOUR)
img1.save('images/ImageFilter_blur.jpg')
img1.show()

输出

如果保存上述程序并执行,它将使用标准PNG显示实用程序显示原始图像和过滤后的图像,如下所示-

原始图片

原始图片

过滤图像

过滤图像

Python img.filter(DETAIL)方法

以下Python示例将DETAIL过滤器应用于给定图像。

#Import required image modules
from PIL import Image, ImageFilter

#Import all the enhancement filter from pillow
from PIL.ImageFilter import (
   BLUR, CONTOUR, DETAIL, EDGE_ENHANCE, EDGE_ENHANCE_MORE,
   EMBOSS, FIND_EDGES, SMOOTH, SMOOTH_MORE, SHARPEN
)
#Create image object
img = Image.open('images/cat.jpg')
#Applying the blur filter
img1 = img.filter(DETAIL)
img1.save('images/ImageFilter_blur.jpg')
img1.show()

输出

如果保存上述程序并执行,它将显示原始图像,并使用标准PNG显示实用程序显示过滤后的图像,如下所示-

原始图片

原始图片

过滤图像

过滤图像1

Python img.filter(EDGE_ENHANCE)方法

以下Python示例将EDGE_ENHANCE过滤器应用于给定图像-

#Import required image modules
from PIL import Image, ImageFilter

#Import all the enhancement filter from pillow
from PIL.ImageFilter import (
   BLUR, CONTOUR, DETAIL, EDGE_ENHANCE, EDGE_ENHANCE_MORE,
   EMBOSS, FIND_EDGES, SMOOTH, SMOOTH_MORE, SHARPEN
)
#Create image object
img = Image.open('images/cat.jpg')
#Applying the blur filter
img1 = img.filter(EDGE_ENHANCE)
img1.save('images/ImageFilter_blur.jpg')
img1.show()

输出

如果保存上述程序并执行,它将显示原始图像,并使用标准PNG显示实用程序显示过滤后的图像,如下所示-

原始图片

原始图像

过滤图像

过滤图像2

Python img.filter(EDGE_ENHANCE_MORE)方法

以下Python示例将EDGE_ENHANCE_MORE过滤器应用于给定图像。

#Import required image modules
from PIL import Image, ImageFilter

#Import all the enhancement filter from pillow
from PIL.ImageFilter import (
   BLUR, CONTOUR, DETAIL, EDGE_ENHANCE, EDGE_ENHANCE_MORE,
   EMBOSS, FIND_EDGES, SMOOTH, SMOOTH_MORE, SHARPEN
)
#Create image object
img = Image.open('images/cat.jpg')
#Applying the blur filter
img1 = img.filter(EDGE_ENHANCE_MORE)
img1.save('images/ImageFilter_blur.jpg')
img1.show()

输出

如果保存上述程序并执行,它将显示原始图像,并使用标准PNG显示实用程序显示过滤后的图像,如下所示-

原始图片

原始图片

过滤图像

过滤图像3

Python img.filter(EMBOSS)方法

以下Python示例将EMBOSS过滤器应用于给定图像。

#Import required image modules
from PIL import Image, ImageFilter

#Import all the enhancement filter from pillow
from PIL.ImageFilter import (
   BLUR, CONTOUR, DETAIL, EDGE_ENHANCE, EDGE_ENHANCE_MORE,
   EMBOSS, FIND_EDGES, SMOOTH, SMOOTH_MORE, SHARPEN
)
#Create image object
img = Image.open('images/cat.jpg')
#Applying the blur filter
img1 = img.filter(EMBOSS)
img1.save('images/ImageFilter_blur.jpg')
img1.show()

输出

如果保存上述程序并执行,它将使用标准PNG显示实用程序显示原始图像和过滤后的图像,如下所示-

原始图片

原始图片

过滤图像

过滤图像4

Python img.filter(FIND_EDGES)方法

以下Python示例将FIND_EDGES过滤器应用于给定图像。

#Import required image modules
from PIL import Image, ImageFilter

#Import all the enhancement filter from pillow
from PIL.ImageFilter import (
   BLUR, CONTOUR, DETAIL, EDGE_ENHANCE, EDGE_ENHANCE_MORE,
   EMBOSS, FIND_EDGES, SMOOTH, SMOOTH_MORE, SHARPEN
)
#Create image object
img = Image.open('images/cat.jpg')
#Applying the blur filter
img1 = img.filter(FIND_EDGES)
img1.save('images/ImageFilter_blur.jpg')
img1.show()

输出

如果保存上述程序并执行,它将使用标准PNG显示实用程序显示原始图像和过滤后的图像,如下所示-

原始图片

原始图片

过滤图像

过滤图像5

Python img.filter(SMOOTH)方法

以下Python示例将SMOOTH滤镜应用于给定图像。

#Import required image modules
from PIL import Image, ImageFilter

#Import all the enhancement filter from pillow
from PIL.ImageFilter import (
   BLUR, CONTOUR, DETAIL, EDGE_ENHANCE, EDGE_ENHANCE_MORE,
   EMBOSS, FIND_EDGES, SMOOTH, SMOOTH_MORE, SHARPEN
)
#Create image object
img = Image.open('images/cat.jpg')
#Applying the blur filter
img1 = img.filter(SMOOTH)
img1.save('images/ImageFilter_blur.jpg')
img1.show()

输出

如果保存上述程序并执行,它将使用标准PNG显示实用程序显示原始图像和过滤后的图像,如下所示-

原始图片

原始图片

过滤图像

过滤图像6

Python img.filter(SHARPEN)方法

以下Python示例将SHARPEN过滤器应用于给定图像。

#Import required image modules
from PIL import Image, ImageFilter

#Import all the enhancement filter from pillow
from PIL.ImageFilter import (
   BLUR, CONTOUR, DETAIL, EDGE_ENHANCE, EDGE_ENHANCE_MORE,
   EMBOSS, FIND_EDGES, SMOOTH, SMOOTH_MORE, SHARPEN
)
#Create image object
img = Image.open('images/cat.jpg')
#Applying the blur filter
img1 = img.filter(SHARPEN)
img1.save('images/ImageFilter_blur.jpg')
img1.show()

输出

如果保存上述程序并执行,它将使用标准PNG显示实用程序显示原始图像和过滤后的图像,如下所示-

原始图片

原始图片

过滤图像

过滤图像7

以下Python示例将SHARPEN过滤器应用于给定图像。

#Import required image modules
from PIL import Image, ImageFilter
#Import all the enhancement filter from pillow
from PIL.ImageFilter import (
   BLUR, CONTOUR, DETAIL, EDGE_ENHANCE, EDGE_ENHANCE_MORE,
   EMBOSS, FIND_EDGES, SMOOTH, SMOOTH_MORE, SHARPEN
)
#Create image object
img = Image.open('images/cat.jpg')
#Applying the blur filter
img1 = img.filter(SHARPEN)
img1.save('images/ImageFilter_blur.jpg')
img1.show()

输出

如果保存上述程序并执行,它将使用标准PNG显示实用程序显示原始图像和过滤后的图像,如下所示-

原始图片

原始图片

过滤图像

过滤图像8