4

我有一个包含一些文本的图像(在标准文档字体大小中),我试图模糊图像,使文本不再可读。

然而,PIL 中的默认 ImageFilter.BLUR 太强了,所以图像只是被消隐了,除了这里和那里的单个像素。

PIL 的某处是否存在较弱的 BLUR?还是有更好的过滤器/更好的方法?

4

1 回答 1

5

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))

或使用比例和偏移值。

于 2012-05-30T09:53:38.723 回答