На цей раз маємо задачу: не надто вдало сфотографовані сторінки тексту треба «пристосувати» для друку — підняти контраст, різкість, зробити «виразнішими».
Як завжди, результат можна отримати легким (easy-to-use) та важким (where-am-i?..) шляхом — розглянемо обидва.
(Звичайно ж, це не єдиний алгоритм, яким можна досягти бажаного результату.)
Зміст
«Лекгий» шлях
- Запускаємо улюблений графічний редактор і відкриваємо зображення:
Якщо фотоапарат «видав» вам горизонтальне зображення, ви мусите його повернути на 90 градусів, звісно. - Дублюємо тло у новий шар:
- Новостворений шар (верхній) капітально розмиваємо:
Для радіуса розмивання я вибрав 20, але можна і більше. Можна попідбирати. Для деяких (великих) зображень я використовував значення до 250. - Для розмитого шару застосовуємо режим «Ділення»:
Після цього маємо вже такий результат:
- Зводимо всі шари у один:
- Користуючись фільтром «Нечітка маска» трохи піднімаємо різкість зображення:
- Зберігаємо, друкуємо, насолоджуємося…
У реальній ситуації може знадобитися якийсь інший алгоритм, якісь інші параметри, але… ми не про це :-)
Читайте далі.
«Важкий» шлях
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} |
Для останнього зображення це дає такий результат (зменшені для веб-перегляду):
Зображення досить чисте, «важить» помітно менше, друкується гарно :-)
Висновок
:-)
Сподіваюся, мій сарказм зрозумілий.
І немає потреби розказувати, наскільки легкий отой «важкий» шлях. Для певного зображення чи всіх зображені у каталозі, чи у всіх каталогах і підкаталогах… До речі, long live „find” :-)
Звісно, у реальному житті зручніше складати оброблені зображення у окремий каталог — це також не проблема.
Цей command-line шлях «працює» (майже) однаково гарно під Linux та Windows. Просто витягніть та поставте ImageMagick. І читайте документацію :-)