2012-05-30 4 views
3

У меня есть изображение, содержащее некоторый текст (в стандартном размере шрифта), и я пытаюсь размыть изображение, чтобы текст не читался.Размытие изображений, содержащих текст с использованием библиотеки изображений Python

Однако изображение по умолчанию ImageFilter.BLUR в PIL слишком велико, поэтому изображение просто затухает, за исключением одного пикселя здесь и там.

Есть ли более слабый BLUR где-то в PIL? Или есть лучший фильтр/лучший способ?

ответ

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 содержит 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)) 

или играть с масштабом и значения смещения.

+0

По-прежнему не удалось размыть текст на этом примере, но теперь я знаю, с чего начать. Я буду играть с ним и посмотреть, какие фильтры я могу сделать. Спасибо. –

Смежные вопросы