Як виправити нерівномірне / градієнтне освітлення на полотні з білим тлом?


24

У мене є фотографії малюнка олівцем, зробленого на папері, зробленого спалахом гарячої шпильки на DSLR та двох поляризаційних фільтрів ( техніка поперечного поляризатора для фотографії полотна).

Зараз проблема полягає в тому, що при наближенні до малюнка освітлення стає нерівномірним, оскільки об'єктив кидає тінь на частину зображення. Це створює градієнт по зображенню, який приблизно, але не зовсім лінійний.

Нижче - приклад зображення; оригінал - близько 3 см в ширину.

Як це можна редагувати таким чином, щоб фон був рівномірно білим?

Вихідне зображення з нерівномірним освітленням

—Редагувати—

Відскановані результати нижче, некоректовані та виправлені. Хоча це спочатку виглядає досить перспективно, але, на жаль, це повна роздільна здатність, яку ви бачите тут (ширина 600 пікселів); сканер може робити 300 dpi, а креслення - приблизно один дюйм. Це трохи менше порівняно з 5000 пікселів від камери.

Крім того, некоректоване сканування натякає, що графіт справді відбиває добру частину світла, на відміну від техніки перехресного поляризатора.

Сканування не виправлено Сканування з виправленою кривою


Чи є якась причина, що ви фотографуєте її замість того, щоб сканувати її?
Коул Джонсон

Так; полотно може бути більше А4. Але я збираюся порівняти результати ввечері. Я трохи підозріло ставляться до відображення, яке може статися на графіті.
Саймон А. Егстер

@ColeJohnson Сканування додано вище.
Саймон А. Егстер

Ще щось спробувати: дістаньте світлий стіл або просто повісьте свій малюнок і просвічіть на ньому яскраве світло з тильної сторони, і сфотографуйте його зі світлом, що просвічує крізь нього (нехай папір сам виступає дифузором). Звичайно, це не спрацює з непрозорими фарбами або якщо на зворотному боці щось намальовано, але для односторонніх олівців, кольорових олівців, чорнила або акварельних зображень варто спробувати.
Ільмарі Каронен

Відповіді:


8

Метод, який я використовував, схожий на ваш , але використовує плагін Resynthesizer (для GIMP) або Заповнення вмісту (для Photoshop) для відновлення градієнта:

  1. Створіть вибір, який повністю покриває малюнок. Це можна зробити вручну, або ви можете скористатися фільтруванням високих частот, щоб обчислити маску вибору так:

    • Почніть з використання фільтра розпізнавання країв, як Різниця Гауссів, на (копію) скану, щоб грубо витягнути малюнок:

      Крок 1.1: Витяг малюнка з різницею гауссів

    • Якщо в результаті не вистачає контрасту, використовуйте інструмент " Рівні" , щоб затемнити його:

      Крок 1.2: Відрегулюйте рівні

    • Застосовуйте деяке розмиття Гаусса :

      Крок 1.3: Нанесіть розмиття Гаусса

    • Використовуйте інструмент Поріг , щоб отримати маску, що охоплює весь малюнок, і використовуйте Вибір за кольором, щоб вибрати його:

      Крок 1.4: Використовуйте пороговий інструмент для отримання маски

  2. Коли у вас є вибір, що охоплює малюнок, зробіть копію оригінального шару сканування і використовуйте для заповнення його функцію Heal Selection / Content-Aware Fill . В ідеалі, ваш скопійований шар повинен виглядати як зображення чистого аркуша паперу:

    Крок 2: Виділіть вибір для відновлення чистого паперу

  3. Установіть режим відредагованого шару на Розділити, як у власній відповіді. Якщо ви хочете зберегти частину текстури паперу та / або затінення, ви можете трохи зменшити непрозорість шару та, можливо, застосувати невелику кількість розмиття:

    Крок 3: Розділіть на шар чистого паперу

    (На малюнку вище заповнений шар Гаусса розмитий на 10 пікс., А непрозорість встановлена ​​на 95%.)

  4. За бажанням, після об’єднання шарів, відрегулюйте рівні, щоб встановити чорну точку (підказка: скористайтеся поданням логарифмічної гістограми) та збільшити контраст:

    Крок 4: Відрегулюйте рівні

(Ps. Клацніть зображення напіврозміру, щоб переглянути їх у повному розмірі.)

Приємне в цьому методі полягає в тому, що він може працювати досить добре навіть при досить нелінійних градієнтах затінення. Звичайно, це не ідеально - якщо на папері є, скажімо, нерегулярна пляма, межа якої частково лежить під кресленням, наповнення вмісту навряд чи його реконструює правильно. Проте, як видно вище, це часто дає досить гідні результати.


Це дуже круто і насправді те, що я хотів зробити спочатку, але ресинтезатора я не знайшов! Збираюся спробувати це завтра з деякими малюнками. Цікаво про те, де більші частини малюнка висвітлені. Ваш результат вже виглядає чудово.
Саймон А. Егстер

Здається, я не можу зареєструвати вибір зцілення в Gimp, на жаль…
Simon A. Eugster

Це дивно. Ви в Windows чи Linux? Однією з можливостей є те, що у вас може бути не доступний Python або GIMP чомусь не може знайти його. У цьому випадку функція Heal Selection може не працювати, але основний фільтр> Map> Resynthesize (який може зробити все, що може зробити Heal Selection, навіть якщо користувальницький інтерфейс може бути не таким зручним) все одно повинен бути доступний.
Ільмарі Каронен

Я в Linux і мені довелося складати плагін самостійно. Map> Resynthesize дійсно доступний. Як я можу перевірити, чи знайде Gimp потрібну версію пітона? У мене встановлено 2.7.5 та 3.3.2.
Саймон А. Егстер

Я не дуже впевнений; Я сам користуюся Ubuntu і просто дозволю APT піклуватися про речі. Чи взагалі з'являється для вас підменю Python-Fu ? Якщо ні, вам може знадобитися встановити GIMP-Python (якщо він доступний окремо від самого GIMP) та / або перекомпілювати GIMP з підтримкою підтримки Python. Потім знову я тут просто здогадуюсь.
Ільмарі Каронен

18

Редагувати: Я написав сценарій Gimp, який виконує наведені нижче кроки, і ще один для відповіді Ілмаріса . Обидва сценарії доступні для завантаження на GitHub . Пропонований шлях - це цей .


Я відповідаю на це прямо тут, бо шукаю рішення вже досить давно і знайшов простий та робочий. Давайте відразу до результату:

  1. Створіть фоновий шар, скопіювавши лише вертикальну смужку фону і розтягнувши його до розміру вихідного зображення.

    У Gimp: виберіть rпрямокутник зверху вниз, що містить фон, вставте Shift+Ctrl+Vнове зображення та розгорніть Filter > Map > Tileйого до розміру зображення, виконайте гауссова розмиття над ним, а потім скопіюйте його назад до зображення як новий шар.

  2. Встановіть режим шару на Відділ .

  3. Зменшіть непрозорість шару за бажанням, наприклад, до 90%. Тримати його на 100%, як правило, занадто яскраво.

Етапи поділу

Це, по суті, полягає в тому, що фоновий шар визначає значення RGB w"білого" на кожному пікселі. Потім режим шару поділу розтягує значення на зображенні від [0,w]до [0,255](див. Режими шару GIMP ) на піксель.

(Погане) Приклад з використанням кривих та лінійного градієнта

Перші спроби завжди полягали в дублюванні шару, зміні яскравості таким чином, щоб найтемніша частина на дні освітлювалася належним чином, і додавали маску шару з лінійним градієнтом, щоб освітлити лише темні ділянки. Чим сильніший градієнт, тим гірше він виглядав.

Спроба з лінійним градієнтом

(Краще) Приклад з використанням поділу

Відділ дає набагато кращі результати; освітлення фіксується рівномірно, і немає спалених ділянок, як особливо в лівій частині малюнка.

Використовуючи поділ


Або просто змінити налаштування рівнів у фотошопі
SaturnsEye

3
Для ще кращих результатів, особливо у випадку нестабільних / нелінійних тіней в обох напрямках, можна сфотографувати білий аркуш паперу, застосувати деяке розмиття, щоб позбутися від шуму камери та користуватися що як основа коригувального шару.
ПлазмаHH

1
@SaturnsEye Спробуйте з вхідним зображенням вище. Не працює;) Якби папір був рівним сірим, як 10%, то так, це було б найпростішим способом.
Саймон А. Егстер

@PlasmaHH Для цього потрібно використовувати штатив, щоб досягти постійної відстані, але це приємне рішення, особливо для сильно намальованих фотографій. Задня частина паперу як правило біла, тому її можна використовувати для регулювального шару. (Ми використовуємо різні види паперу з різними відтінками сірого / коричневого).
Саймон А. Егстер

@ SimonA.Eugster: Якби я робив ці речі не раз у раз, я б у будь-якому разі використовував штатив і налаштування легкого відтворення для постійних результатів.
ПлазмаHH

5

Ця відповідь описує найшвидший надійний мені підхід, заснований на відповіді Ільмарі Канорен . Він є напівавтоматичним; автоматична маска не працює для жорстких зображень, як у наведеному нижче, оскільки в деяких частинах малюнка немає країв.

Цей скрипт Gimp автоматизує кроки 3 та 4 (зауважте, що потрібен Resynthesizer), тому робочий процес є просто: Створіть вибір, запустіть сценарій. На сценарій потрібно 6 секунд, щоб виконати зображення на 15 Мп на моєму 3-річному ноутбуці.

введіть тут опис зображення

Крок 1 (необов’язково): Відрегулюйте криві для темно-чорного

Чорна точка

Крок 2: Виберіть об'єкт

У Gimp Швидка маска Shift+Q- це швидкий шлях. Використовуйте олівець Nі пофарбуйте об'єкт білим кольором, натисніть Shift+Qще раз, щоб перетворити маску на вибір.

Об'єкт вибрано

Крок 3: Відтворити фон

  • Скопіюйте зображення та масштаб до 400 × 400 пікселів
  • Використовуйте функцію вибору зцілення або заповнення вмісту, щоб вилікувати об'єкт (залишається лише фон)
  • Використовуйте розмиття Гаусса, 40 × 40 пікс
  • Зменш масштаб зображення до оригінального розміру та скопіюй його назад як шар до оригінального зображення

Фон

Крок 4: Режим поділу

Встановіть для режиму шару розділення та трохи зменшіть непрозорість.

Виправлене зображення


1

Це форум фотографії, тому я буду приймати фотографічний підхід. Звичайно, для ідеального білого вам, мабуть, ще потрібні певні налаштування після виробництва.

Замість використання спалаху можна спробувати використовувати природне освітлення. Уникайте прямих сонячних променів, не тримайтеся занадто близько до вікна, але як 2 метра від вікна. Це полягає в тому, щоб зменшити різницю в світлі між найближчою і віддаленою частиною малюнка. (Оскільки це невелике зображення, відстань може бути не такою важливою.)

Можна навести штатив вниз і покласти малюнок на підлогу.

Або якщо у вас немає штатива, ви можете влаштувати обкладинку книг або коробку з зерновими, щоб вертикально тримати зображення на столі, і покладати камеру постійно на один стіл. (Покладіть за малюнком білий аркуш паперу, щоб не бачити фонові зображення чи текстури.)

Поляризатор, про який ви згадуєте, полягає в тому випадку, якщо ви маєте креслення за склом, і коли у вас яскраві предмети або відбиття. Але якщо ваш джерело світла знаходиться під косим кутом, вам, ймовірно, не потрібно використовувати фільтр.


Мені відомо про зовнішнє освітлення. Це, ймовірно, дасть кращі результати щодо градієнта, хоча на цій відстані об'єктив, швидше за все, почне кидати тінь на папір. Тут потрібен поляризатор, оскільки поверхня паперу не є рівною, а графіт на диво добре відбиває світло тим темніше, на якому ви хочете, щоб ця область була;) Крім того, натискання олівцем трохи сильніше може створити відступи, де зовнішнє світло може відбиватися знову .
Саймон А. Егстер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.