Вейвлети
Вейвлети використовуються для розділення (або декомпозиції) зображення на кілька різних шарів, кожен з яких містить різний рівень деталізації. Після декомпозиції зображення таким чином, модуль може обмежити його обробку одним або декількома з цих шарів деталізації, а потім знову з’єднати шари в кінці, щоб сформувати його вихідні дані. Це дозволяє нам хірургічно точно визначити, на які деталі зображення ми хочемо впливати при роботі з модулем.
Деякі операції, які Darktable може виконати таким чином:
-
знешумлення (в модулях Знешумлення (профільоване), Знешумлення raw та Еквалайзер контрасту)
-
регулювання контрасту (в модулі Еквалайзер контрасту)
-
розмиття або видалення небажаних деталей (в модулі Ретуш)
🔗Теорія
Вейвлет – це коливальна математична функція, яка починається і закінчується на нулі. На наступній схемі показано кілька простих вейвлетів різного розміру.
Ці вейвлет-функції використовуються для сканування та розкладання зображення за допомогою математичної операції, що називається згортка. Це вибирає деталі із зображення, які мають масштаб, подібний до розміру даного вейвлету, і створює ряд цих детальних шарів, кожен з яких відповідає різному масштабу вейвлета.
Далі наведено приклад, коли з вищенаведеного зображення було витягнуто шари деталей. У цьому випадку ці зображення були створені за допомогою модуля Ретуш, розділивши зображення на 8 різних шарів та використовуючи інструмент “Відображати масштаби” “для візуалізації кожного з детальних шарів:
The bars in the wavelet decompose section indicate the layers that have been extracted at different wavelet scales. The darkest rectangle at the left represents the entire image (before decomposition) and the gray boxes each represent one of the decomposed layers. Clicking on the staircase icon below the bar graph enables the layer visualization overlay so that you can see what the currently selected layer looks like.
Давайте подивимось на деякі шари, створені для вищенаведеного зображення.
У масштабі №2 зображення містить лише дуже дрібні деталі, включаючи брови, вії та пори шкіри моделі. Він не включає більш грубі деталі зображення, оскільки ці деталі були виділені в інші шари:
На шкалах №5 та №6 ми починаємо бачити все більші та більші деталі:
На шкалі №8 ми бачимо лише деталі високого рівня, такі як загальна форма носа, ока та щоки моделі:
🔗Навіщо використовувати вейвлети?
Припустимо, у наведеному вище прикладі ми хотіли згладити частину плям на шкірі моделі, не втрачаючи жодної дрібної текстури. Розкладання вейвлетів робить це тривіальною операцією – ми можемо просто використовувати модуль ретушування, щоб застосувати розмиття Гауса лише до “плямистих” детальних шарів, залишаючи всі інші шари недоторканими. Після завершення коригування модуль ретушування просто рекомбінує скоригований шар з рештою недоторканими шарами для отримання кінцевого зображення.
Послідовність зображень нижче показує (1) оригінальне зображення; (2) шар (шкала 5), який ми хочемо розмити; та (3) остаточне зображення після того, як шар масштабу 5 розмитий і шари рекомбіновані:
Як бачите, масштабні плями на шкірі були видалені, але дрібні деталі залишаються недоторканими.
🔗Взаємодія з масштабами вейвлетів
Існує два методи, за допомогою яких модулі обробки дозволяють змінювати їх роботу з використанням масштабів вейвлетів.
🔗Вейвлет-декомпозиція
Як обговорювалося вище, модуль Ретуш дозволяє вибрати, на скільки рівнів деталізації поділити ваше зображення. Він розкладає зображення на окремі шари і дозволяє виконувати операції вибірково на кожному окремому шарі або на зображенні в цілому:
Детальніше див. у документації до модуля Ретуш.
🔗Керування сплайнами
Модулі Знешумлення (профільоване), Знешумлення raw і Еквалайзер контрасту дозволяють застосовувати їх ефекти більш-менш до кожного масштабу вейвлетів за допомогою сплайнів.
Тут кожен вузол на графіку представляє різний рівень деталізації зображення, від грубих деталей зліва до тонких деталей справа. Ви можете піднімати або опускати кожен з цих вузлів за допомогою миші, щоб збільшити або зменшити ефект модуля, відповідно, на цьому масштабі вейвлетів.
Щоб змінити криву, натисніть трохи вище або нижче лінії біля вузла та перетягніть вгору або вниз. Ви можете змінити ширину модифікації, прокручуючи колесо миші, що збільшує або зменшує розмір кола, що відображається під вказівником миші. Маленьке коло вказує на те, що ефект перетягування кривої вгору або вниз буде ізольований здебільшого до коригованого вузла. Більше коло вказує на те, що ефект буде ширшим і буде все більше впливати на сусідні вузли. Коли ви наводите курсор миші на графік, затінені ділянки вказують на частини сплайну, на які вплине спроба змінити криву.