ImageFilter 模块¶

这个 ImageFilter 模块包含一组预定义的筛选器的定义,这些筛选器可与 Image.filter() 方法。

示例:过滤图像

from PIL import ImageFilter

im1 = im.filter(ImageFilter.BLUR)

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

过滤器

库的当前版本提供了以下一组预定义的图像增强过滤器:

class PIL.ImageFilter.Color3DLUT(size, table, channels=3, target_mode=None, **kwargs)[源代码]

三维颜色查找表。

使用通道的值作为三维查找表中的坐标转换3通道像素,并插入最近的元素。

此方法允许您使用预先计算的抽取表在恒定时间内应用几乎任何颜色转换。

5.2.0 新版功能.

参数:
  • size -- 桌子的大小。(int,int,int)的一个int或元组。任何尺寸的最小尺寸为2,最大尺寸为65。
  • table -- 平面查找表。一览表 channels * size**3 浮动元素或 size**3 通道大小的浮点数元组。首先改变通道,然后是第一个维度,然后是第二个维度,然后是第三个维度。值0.0对应输出的最小值,1.0最高。
  • channels -- 表中的通道数。可能是3或4。默认值为3。
  • target_mode -- 结果图像的模式。应该有不少于 channels 渠道。默认是 None 也就是说模式不会改变。
class PIL.ImageFilter.BoxBlur(radius)[源代码]

通过将每个像素设置为每个方向延伸半径像素的方形框中像素的平均值来模糊图像。支持任意大小的浮动半径。使用一个优化的实现,该实现相对于任何半径值的图像大小以线性时间运行。

参数:radius -- 一个方向上的框的大小。半径0不模糊,返回相同的图像。半径1在每个方向上取1个像素,即总共9个像素。
class PIL.ImageFilter.GaussianBlur(radius=2)[源代码]

高斯模糊滤波器。

参数:radius -- 模糊半径。
class PIL.ImageFilter.UnsharpMask(radius=2, percent=150, threshold=3)[源代码]

取消锐化屏蔽滤波器。

在上查看维基百科的条目 digital unsharp masking 有关参数的说明。

参数:
  • radius -- 模糊半径
  • percent -- 不清晰度强度,百分比
  • threshold -- 阈值控制将锐化的最小亮度变化
class PIL.ImageFilter.Kernel(size, kernel, scale=None, offset=0)[源代码]

创建卷积内核。当前版本只支持3x3和5x5整数和浮点内核。

在当前版本中,内核只能应用于“l”和“rgb”图像。

参数:
  • size -- 内核大小,表示为(宽度、高度)。在当前版本中,必须是(3,3)或(5,5)。
  • kernel -- 包含核权的序列。
  • scale -- 比例因子如果给定,则每个像素的结果除以该值。默认值是内核权重的总和。
  • offset -- 抵消。如果给定,该值将在除以比例因子后添加到结果中。
class PIL.ImageFilter.RankFilter(size, rank)[源代码]

创建等级筛选器。等级过滤器对给定大小的窗口中的所有像素排序,并返回 rank' 钍值。

参数:
  • size -- 内核大小,以像素为单位。
  • rank -- 要选取的像素值。使用0作为最小过滤器, size * size / 2 对于中值滤波器, size * size - 1 对于最大滤波器等。
class PIL.ImageFilter.MedianFilter(size=3)[源代码]

创建中值过滤器。选取具有给定大小的窗口中的中值像素值。

参数:size -- 内核大小,以像素为单位。
class PIL.ImageFilter.MinFilter(size=3)[源代码]

创建最小筛选器。选取具有给定大小的窗口中的最低像素值。

参数:size -- 内核大小,以像素为单位。
class PIL.ImageFilter.MaxFilter(size=3)[源代码]

创建最大筛选器。选取窗口中具有给定大小的最大像素值。

参数:size -- 内核大小,以像素为单位。
class PIL.ImageFilter.ModeFilter(size=3)[源代码]

创建模式筛选器。选取具有给定大小的框中最频繁的像素值。只出现一次或两次的像素值将被忽略;如果没有超过两次的像素值出现,则保留原始像素值。

参数:size -- 内核大小,以像素为单位。