2012-05-30 37 views
3

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

但是,PIL中的默认ImageFilter.BLUR太强大了,所以图像只是空白,除了一个像素在这里和那里。

PIL中某个地方是否有较弱的BLUR?还是有更好的过滤器/更好的方法?

回答

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是内核的一个简单的定制子类,绕过构造,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)) 

或与发挥规模和偏移值。

+0

仍然无法模糊与该示例的文字,但现在我知道从哪里开始。我会玩它,看看我可以做什么样的过滤器。 谢谢。 –