“Покращення” сфотографованого тексту

Posted on

На цей раз маємо задачу: не надто вдало сфотографовані сторінки тексту треба «пристосувати» для друку — підняти контраст, різкість, зробити «виразнішими».

Як завжди, результат можна отримати легким (easy-to-use) та важким (where-am-i?..) шляхом — розглянемо обидва.

(Звичайно ж, це не єдиний алгоритм, яким можна досягти бажаного результату.)

Зміст

  1. «Легкий» — графічний — шлях
  2. «Важкий» — з командного рядка
  3. Висновок

«Лекгий» шлях

  1. Запускаємо улюблений графічний редактор і відкриваємо зображення:
    01-open-image
    Якщо фотоапарат «видав» вам горизонтальне зображення, ви мусите його повернути на 90 градусів, звісно.
  2. Дублюємо тло у новий шар:
    02-duplicate-layer
  3. Новостворений шар (верхній) капітально розмиваємо:
    03-blur-layer
    Для радіуса розмивання я вибрав 20, але можна і більше. Можна попідбирати. Для деяких (великих) зображень я використовував значення до 250.
  4. Для розмитого шару застосовуємо режим «Ділення»:
    04-compose-divide
    Після цього маємо вже такий результат:
    05-composed-result
  5. Зводимо всі шари у один:
    06-flatten
  6. Користуючись фільтром «Нечітка маска» трохи піднімаємо різкість зображення:
    07-unsharp-mask
  7. Зберігаємо, друкуємо, насолоджуємося…

У реальній ситуації може знадобитися якийсь інший алгоритм, якісь інші параметри, але… ми не про це :-)

Читайте далі.

«Важкий» шлях

image=${1:?"Set image name as a param"}
 
# let's say all images have three-letters "extension"
 
convert -monitor $image \
        \( +clone -blur 0x20 \) +swap \
        -compose divide -composite \
        -sharpen 0x1.3 ${image%%.*}_better.${image: -3:3}

Сторінка перед оброблянням та сторінка після обробляння (зменшені для веб-перегляду).

До речі, якщо ваш фотоапарат частенько «видає» вам горизонтальне зображення між вертикальними, і вам треба кожен кадр повернути, скажімо, на 90 градусів — але всі саме на 90 і в один бік, або ж не повертати зовсім — ви можете використати ключик «-rotate "90>"». При цьому будуть повернуті лише горизонтальні зображення. О, якщо ваш фотоапарат, на щастя, вставляє у EXIF інформацію про орієнтаціє кадру — ви можете використовувати ключик -auto-orient, звісно!

До речі, якщо вам треба чорний зробити чорнішим, можна модифікувати так:

image=${1:?"Set image name as a param"}
 
convert -monitor $image \
        -rotate "90>" \
        \( +clone -blur 0x20 \) +swap \
        -compose divide -composite \
        \( +clone -blur 20 \) +swap \
        -compose multiply -composite \
        -sharpen 0x1.3 ${image%%.*}_farbetter.${image: -3:3}

Сторінка перед оброблянням, після першого «скрипту», після другого «скрипту» (зменшені для веб-перегляду). Знову ж — це не єдиний спосіб, як і з фотошопом :О)

Для саме цих зображень я зупинився на такому варіанті:

image=${1:?"Set image name as a param"}
out="002"; mkdir -p ${out}
 
convert -monitor $image \
        -resize "3456x3456>" \
        -rotate "90>" \
        -median 1 \
        \( +clone -blur 0x20 \) +swap \
        -compose divide -composite \
        \( +clone -median 3 \) +swap \
        -compose multiply -composite \
        -level 10%,90%,1 \
        -sharpen 0x1.3 ${out}/${image%%.*}.${image: -3:3}

Для останнього зображення це дає такий результат (зменшені для веб-перегляду):
dscf3185_probably_final

Зображення досить чисте, «важить» помітно менше, друкується гарно :-)

Висновок

:-)

Сподіваюся, мій сарказм зрозумілий.

І немає потреби розказувати, наскільки легкий отой «важкий» шлях. Для певного зображення чи всіх зображені у каталозі, чи у всіх каталогах і підкаталогах… До речі, long live „find” :-)

Звісно, у реальному житті зручніше складати оброблені зображення у окремий каталог — це також не проблема.

Цей command-line шлях «працює» (майже) однаково гарно під Linux та Windows. Просто витягніть та поставте ImageMagick. І читайте документацію :-)

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.