Pull to refresh

Автоматически убираем фон у сфотографированного текста в Photoshop или ImageMagick

Reading time2 min
Views4K
Хочу поделиться трюком, который немного помогает улучшить качество при печати в ч/б всякого рода конспектов, если их почему-то «оцифровали» фотоаппаратом вместо сканера.
image

Собственно главная проблема с такими фотографиями в отличие от сканов, это неравномерность яркости фона, порой настолько, что текст на таком тёмном фоне становится плохо читаем после печати на лазерном ч/б принтере. Как пример такой «неравномерности»:
image

Идея заключается в том чтобы выделить из страницы что-то похожее на её фон и «вычесть» его из неё самой, и тем самым уничтожить хотя бы часть фона и перепадов яркости.

Ближе к делу. Допустим у нас есть пара десятков, сфотографированных в похожих условиях страничек. Типа такой, но можно и хуже:
image

Открываем какую-нибудь из страниц в Photoshop и делаем копию основного слоя:
image

Инвертируем верхний слой:
image

размываем его с помощью Gaussian Blur
image

… очень важно правильно выбрать радиус размытия: с одной стороны он должен быть больше характерного размера букв, — нам нужно уничтожить все детали, с другой стороны слишком сильно размытый слой не сможет передать градиент фона, который мы пытаемся извести. Оптимальный радиус это где-то 1.5-3 размера высоты строки:
image

осталось только изменить метод наложения слоёв, лучше всего то, что надо делает Color Dodge:
image

всё, градиента больше нет:
image

можно слить слои вмести и подкрутить яркость и уровни по вкусу (тут всё сильно зависит от конкретных условий съёмки, тогда как предидущие шаги в высокой степени универсальны).

Теперь, попрактиковавшись, можно перейти к автоматизации процесса:
отменяем всё что сделали с картинкой и начинаем запись макроса:
image

под запись повторяем всё что делали в начале статьи — от клонирования слоя, до мёржа слоёв и подкрутки яркости.
Останавливаем запись макроса и идём в File => Automate => Batch…
Там выбираем откуда брать фотки страниц и куда их потом сохранять:
image

Процесс не шибко быстрый, зато полностью автоматизированный.
Надеюсь кому-нибудь пригодится, самому давно не актуально.

UPD: рекомендую после сведения слоев проходиться Unsharp Mask (я использовал параметры: радиус 5 пикселей / 150%) (с) not_ice

UPD: тоже самое с помощью ImageMagick можно сделать, например, вот такой командой
convert.exe src.jpg ( +clone -negate -virtual-pixel edge -gaussian-blur 30x10 ) -background none -compose colordodge -flatten result.jpg


Критика и улучшения приветствуются.
Tags:
Hubs:
+42
Comments25

Articles

Change theme settings