Весна — прекрасное время! Всё распускается, щебечет и радуется жизни. Студенты нехотя спешат на пары. Они точно знают, что апогеем всего этого буйства природы будет… летняя сессия. Мероприятие эмоционально сложное, требующее приложения немалых усилий. Признаться честно, у меня до сих пор весной обостряется ненависть к дешёвому чаю и пельменям, а иногда снятся институтские экзамены…
В бытность мою студентом не было в сессию лучшего друга, чем копир в холле главного здания. Создавалось впечатление, что прибыль от копирования конспектов лекций могла запросто конкурировать с объёмом бюджетного финансирования альма-матер.
Уровень современных студентов несколько выше. На смену копиру пришел цифровой фотоаппарат. Переснять конспект или нужную книжку стало значительно дешевле, но появилась другая проблема: для просмотра нужен компьютер, который заметно проигрывает в удобстве классической пачке бумаги. Как бы там ни было, попытка напечатать сфотографированные страницы даёт колоссальный расход тонера, а прочитать их сложно из-за неравномерной освещённости оригинала.
Вообще-то и со сканированными материалами проблемы схожие. Кому приходилось создавать копии разного рода справок и бланков, знают, что напрямую печатать результаты сканирования нельзя — будет слишком много грязи и шумов. Решение стандартное — берётся любая команда тоновой коррекции (уровни или кривые) и с помощью вспомогательных «пипеток» устанавливаются точки белого (щелчок по незапечатанному участку) и точка чёрного (щелчок по запечатанной части, литере). Способ терпит фиаско на любых затенённых участках, например на корешковых полях разворотов. Тут-то и пригодится усовершенствованный алгоритм!
Основная идея основывается на классическом предположении, используемом в алгоритмах машинного «зрения». Освещённость снимаемого объекта меняется сравнительно медленно и определяет т. н. низкочастотную (НЧ) составляющую, а детали объекта соответствуют высокой частоте (ВЧ). Если отфильтровать НЧ с помощью ВЧ-фильтра (в Adobe Photoshop это HighPass), то останутся только нужные детали, т. е. текст. Итак, реализация в Adobe Photoshop:
Открываем сфотографированный оригинал (рис. 1), создаём его слой-дубликат.
Применяем к нему фильтр HighPass (Filter•Other•HighPass).
Подбираем радиус так, чтобы проступил текст, но градиента освещённости не было (обычно это сравнительно небольшое значение в диапазоне от удвоенной высоты литер в снимке до примерно 30 пикселей). Давайте возьмём 20 (рис. 2).
Теперь к отфильтрованному изображению применяем команду уровней Image•Adjustments•Levels.
Выставляем точку белого ровно в середину диапазона: 128. Это очень важно — отсечь бесполезный шум выводом его в чистый белый цвет при полном отсутствии негативного эффекта для самого текста.
Остаётся подобрать уровень чёрного, исходя из соотношения между хорошим контрастом и читабельностью текста, — двигаем ползунок чёрного вправо (рис. 3), например до 65.
Теперь избавимся от цветных «лохмотьев» шумов. Дублируем обработанный слой и задаём дубликату режим наложения Screen (рис. 4).
Применяем к Screen-копии команду Image•Adjustments•Threshold и двигаем ползунок как можно дальше вправо, не допуская проступать пятнам.
Если текст будет распечатываться, разумно также перевести изображение в ч/б режим (Grayscale).
Сравните результаты — классический «пипеточный» (рис. 5) и усовершенствованный (рис. 6).
Алгоритм отлично справляется с текстом и запросто может использоваться в пакетном режиме, только для оригиналов с большими чёрными плашками требуется избирательная обработка. Кстати, есть подозрение, что метод уже давно взят на вооружение производителями копиров — не зря же на большинстве устройств есть переключатель «копировать как текст».