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

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

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

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

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

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

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

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

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

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

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

Процесс не шибко быстрый, зато полностью автоматизированный.
Надеюсь кому-нибудь пригодится, самому давно не актуально.
UPD: рекомендую после сведения слоев проходиться Unsharp Mask (я использовал параметры: радиус 5 пикселей / 150%) (с) not_ice
UPD: тоже самое с помощью ImageMagick можно сделать, например, вот такой командой
Критика и улучшения приветствуются.

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

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

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

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

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

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

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

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

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

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

Процесс не шибко быстрый, зато полностью автоматизированный.
Надеюсь кому-нибудь пригодится, самому давно не актуально.
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
Критика и улучшения приветствуются.