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)

过滤器#

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

  • BLUR

  • CONTOUR

  • DETAIL

  • EDGE_ENHANCE

  • EDGE_ENHANCE_MORE

  • EMBOSS

  • FIND_EDGES

  • SHARPEN

  • SMOOTH

  • SMOOTH_MORE

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 也就是说模式不会改变。

classmethod generate(size, callback, channels=3, target_mode=None)[源代码]#

使用提供的回调生成新的LUT。

参数:
  • size -- 桌子的大小。传递给构造函数。

  • callback -- 三个参数对应三个颜色通道的功能。将被调用 size**3 值在0.0到1.0之间的时间,应返回一个具有 channels 元素。

  • channels -- 应返回回调的通道数。

  • target_mode -- 传递给结果查找表的构造函数。

transform(callback, with_normals=False, channels=None, target_mode=None)[源代码]#

使用提供的回调转换表值,并返回具有更改值的新LUT。

参数:
  • callback -- 获取旧查阅表格值并返回一组新值的函数。函数应采用的参数个数为 self.channels3 + self.channels 如果 with_normals 已设置标志。应返回的元组 self.channelschannels 元素(如果已设置)。

  • with_normals -- 如果是真的, callback 将以颜色多维数据集中的坐标作为前三个参数调用。否则, callback 将仅使用实际颜色值调用。

  • channels -- 结果查找表中的通道数。

  • target_mode -- 传递给结果查找表的构造函数。

class PIL.ImageFilter.BoxBlur(radius)[源代码]#

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

参数:

radius -- 一个方向上的框的大小。半径0不模糊,返回相同的图像。半径1在每个方向上取1个像素,即总共9个像素。

class PIL.ImageFilter.GaussianBlur(radius=2)[源代码]#

使用一系列近似于高斯核的扩展框滤镜模糊图像。有关准确性的详细信息,请参阅<https://www.mia.uni-saarland.de/Publications/gwosdek-ssvm11.pdf>

参数:

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 -- 内核大小,以像素为单位。

class PIL.ImageFilter.Filter[源代码]#

用于过滤图像的抽象mixin(用于 filter()

实施者必须提供以下方法:

filter(self, image)#

对单个波段图像或图像的单个波段应用过滤器。

返回:

图像的过滤副本。

class PIL.ImageFilter.MultibandFilter[源代码]#

用于过滤多波段图像的抽象mixin(用于 filter()

实施者必须提供以下方法:

filter(self, image)#

对多波段图像应用过滤器。

返回:

图像的过滤副本。