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

然而,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 包含 sizescaleoffsetkernel 。换句话说,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))

或使用比例和偏移值。

关于python - 使用 Python Imaging Library 模糊包含文本的图像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10813726/

10-11 19:40