Здесь я предложу несколько вариантов решения этой задачи. Основная проблема фотографий это неравномерность освещенности страницы, когда в центре яркость больше, а по краям меньше, или что-либо подобное. Так же часто необходимо повысить контрастность текста по сравнению со страницей
При обычной коррекции Уровней некоторые части изображения получаются засвечены, а некоторые наоборот слишком тёмные
Все методы более или менее решают эту проблему. В качестве материала для обработки я взял эту страничку(Предварительно обрезав всё лишнее):
В скобках приведены английские названия инструментов, а также использованные в данном случае настройки
Метод с делением слоёв
- Создать новый слой с копией изображения
- Размыть новый слой по Гауссу до относительной равномерности, когда текст уже почти не оставляет следов, но разница яркости в углах и центре заметна
(Filters -> Blur -> Gaussian blur: Blur radius - 100) - Назначить режим этого слоя в деление(Layers window: Mode - Divide)
- Свести слои (Layers -> merge)

Метод с детектированием краёв
- Размыть фон по гауссу. Подобрать дельту так что бы текст не размывался, Радиус размытия думаю больше 10 ставить не стоит.(Filters - > Blur -> Selective Gaussian blur: Delta - 19; Radius - 15)
- Выделите края настраиваемым методом Лапласа (Filters -> Edge-detect -> Edge...: Algorithm: Laplace; Amount: 2)
- Если хотите, инвертируйте цвет картинки


Долгий метод с отдельной коррекцией яркости
- Размыть фон по Гауссу. Подобрать дельту так что бы текст не размывался, Радиус размытия думаю больше 10 ставить не стоит.(Filters - > Blur -> Selective Gaussian blur: Delta - 19; Radius - 15)
- Создать новый слой с копией изображения
- Размыть новый слой по Гауссу до относительной равномерности, когда текст уже почти не оставляет следов, но разница яркости в углах и центре заметна (Filters -> Blur -> Gaussian blur: Blur radius - 100) (Filters -> Blur -> Gaussian blur: Blur radius - 100)
- Назначить режим этого слоя в Яркость и поставить плотность 50% (Layers window: Mode - Value; Opacity: 50)
- Свести слои (Layers -> merge)
- Обработайте картинку: Color -> Auto -> Stretch HSV

Относительной читабельности можно добиться и с помощью пакета ImageMagic
convert ./1_original.jpg -colorspace gray \( +clone -blur 10x65535 \) -compose subtract -composite -threshold 50% ./im4.jpg

Автоматизация
Murkt разобрался в Python-Fu и написал скрипт которым можно это всё автоматизировать. Пишем в консоль(Filters -> Python-Fu -> Console) следующее:
Теперь можно из этой же консоли обработать все открытые изображения с помощью команды:
0 Ответов::
Отправить комментарий