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.channels
或3 + self.channels
如果with_normals
已设置标志。应返回的元组self.channels
或channels
元素(如果已设置)。 -
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 -- 内核大小,以像素为单位。
讨论区