我有一个包含一些文本的图像(在标准文档字体大小中),我试图模糊图像,使文本不再可读。
然而,PIL 中的默认 ImageFilter.BLUR 太强了,所以图像只是被消隐了,除了这里和那里的单个像素。
PIL 的某处是否存在较弱的 BLUR?还是有更好的过滤器/更好的方法?
我有一个包含一些文本的图像(在标准文档字体大小中),我试图模糊图像,使文本不再可读。
然而,PIL 中的默认 ImageFilter.BLUR 太强了,所以图像只是被消隐了,除了这里和那里的单个像素。
PIL 的某处是否存在较弱的 BLUR?还是有更好的过滤器/更好的方法?
BLUR
只是一个预设ImageFilter.Kernel
:
class BLUR(BuiltinFilter):
name = "Blur"
filterargs = (5, 5), 16, 0, (
1, 1, 1, 1, 1,
1, 0, 0, 0, 1,
1, 0, 0, 0, 1,
1, 0, 0, 0, 1,
1, 1, 1, 1, 1
)
其中 BuiltinFilter 是一个简单的 Kernel 自定义子类,它绕过构造函数,filterargs
包含size
, scale
, offset
, kernel
。换句话说,BLUR
相当于:
BLUR = Kernel((5, 5), (1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1))
比例设置为默认值(16
,25 个权重的总和),偏移量也是如此。
您可以尝试使用较小的内核:
mildblur = Kernel((3, 3), (1, 1, 1, 1, 0, 1, 1, 1, 1))
或使用比例和偏移值。