Как сделать соляризацию

Обновлено: 05.07.2024

В этой статье я снова расскажу немного про цифровую обработку изображений с помощью языка программирования D на примере одной простой операции с изображением, которая называется соляризацией. Данная операция является частным случаем более общей операции под названием препарирование изображения и которая оперирует над цветовой плоскостью, изменяя динамический диапазон изображения и давая интересный графический эффект.

Если вам любопытно, что получилось, то добро пожаловать в эту статью.

Над соляризацией я задумался, когда разрабатывал модуль processing для библиотеки цифровой обработки изображений rip, поэтому не удивляйтесь интересному и не совсем соответствующему для dlib коду. Дело в том, что я решил рассказать здесь про эффект соляризации для иллюстрации интересного приема обработки фотографий и для описания своего подхода к разработке методов препарирования изображений.

Вообще сам эффект соляризации (иногда и псевдосоляризации, называемой также эффект Сабатье) описывается весьма простой формулой:

где y’ — новое значение цвета, y — текущее значение цвета, k — некий коэффициент описывается весьма простой формулой: (назовем его коэффициентом соляризации), y_max — значение цвета с максимальной для изображения яркостью.

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

Приведенный здесь код сначала создаем новое изображение с размерами точно такими же, как и у картинки под преобразование (в общем, наш стандартный прием в делах обработки изображений), затем приводим полученный коэффициент к типу float, как наиболее удобный для расчетов (спорный момент, конечно, но в целом это почти всегда удобно). Далее, создаем псевдоним под простую лямбда-функцию для сравнения пикселей исходя из их яркости и формируем массив из всех пикселей изображения (надеюсь, в dlib когда-нибудь появится диапазон для прохода по всем пикселям изображения без необходимости формирования массива), который далее сортируем по убыванию с помощью уже созданной функции compareLuminance и с помощью метода front первый элемент, который отвечает пикселю с максимальным значением яркости по изображению. Дальнейший обход по изображению с помощью двух циклов — это стандартная версия процедуры трансформации каждого отдельно взятого пикселя, для которой в нашем случае используется формула соляризации (даже без каких-либо изменений, кроме как переменных). В совокупности, вышеописанный код выдает новое изображение, в котором соляризация уже проведена.

Для испытания эффекта необходимо просто загрузить картинку с помощью стандартной для dlib процедуры load и непосредственным применением функции solarizateImage c соответствующим коэффициентом:

Вот примеры изображений, которые генерируется испытательным кодом (не включено одно изображение для коэффициента 0.1, т.к. получается просто черный фон вместо изображения):





Таким образом, мы расширили копилку интересных эффектов, реализованных с помощью D/dlib, а также рассмотрели интересную схему разработки: сначала мы разрабатываем инструменты проверки идеи, причем делаем это в самом общем виде, а затем создаем само программное описание интересующей нас проблемы.

Надеюсь, данная статья задаст новую планку в программировании цифровой обработки изображений, а также подтолкнет вас к созданию своих любопытных цифровых эффектов.

это группа ЧКФР, объединенных общими интересами (не глобального, а локального характера), которым необходима отдельная площадка для их обсуждения.
Создать сообщество может любой ЧКФР, состоящий в клубе не менее полугода.
Любой ЧКФР может вступить в любое сообщество или в несколько сообществ одновременно. Членство в сообществе позволяет участвовать в обсуждении тем сообщества.


ЭТО НЕ МОЕ .
Все фотографии из журналов "Советское фото"

Один из вариантов - использование фильтра поиска краев "find edges"

2. Идем в ветку filter - stylize - find edges.

3. В ветке image-adjustment-threshold движком под гистограммой выбираем глубину эффекта или вводим конкретное числовое значение в окошко.

Если нужно, лишнее трем ластиком, инвертируем изображение, дублируем слои, используем маски и т.п.

Смысл соляризации заключается в том, что участки исходного изображения, имеющие уровень белого или близкий к нему уровень яркости, после обработки имеют уровень черного. При этом сохраняют уровень черного и участки, имеющие его на исходном изображении. Уровень же белого на выходе приобретают участки, имеющие на входе средний уровень яркости (уровень серого).

void Solarize(IplImage* img, IplLUT* lut)
// Построение гистограммы для нахождения максимумов
iplComputeHisto(img, plut);

// Определение максимальной интенсивности
int mx = 255;
while (!lut->value[mx])
mx--;

// Подготовка lookup-таблицы к соляризации
lut->interpolateType = IPL_LUT_LOOKUP; // режим интерполяции
lut->num = 257; // количество ключевых значений

for ( int i = 0; i key[i] = i;
lut->factor[i] = 0; // наклон
lut->value[i] = 4 * int (i - i * i / ( double )mx); // величина сдвига
>

Соляризация (от лат. Solaris — солнечный, sol — солнце; через французское слово solarisation ) — специальная фотографическая техника трансформации изображения с использованием эффекта Сабатье. Суть процесса - получение частично обращённого изображения. Один из Фотографических эффектов.





Принципы создания эффекта соляризации

Эффект Сабатье

В современной художественной фотографии эффект Сабатье может быть вызван искусственно, путём дополнительной экспозиции плёнки актиничным светом во время проявления. Эффект используют в художественных фильмах, но особенно популярен он в художественных фотографиях, в рекламе.

Wikimedia Foundation . 2010 .

Полезное

Смотреть что такое "Соляризация" в других словарях:

СОЛЯРИЗАЦИЯ — (от лат. solaris солнечный) наблюдаемое при сверхбольших экспозициях уменьшение (с увеличением экспозиции) плотности почернения фотографического на проявленном светочувствительном слое (галогеносеребряном). Приводит к превращению негативного… … Большой Энциклопедический словарь

СОЛЯРИЗАЦИЯ — СОЛЯРИЗАЦИЯ, соляризации, мн. нет, жен. (от лат. solaris солнечный) (спец.). 1. Облучение солнцем, использование действия солнечных лучей, преим. с медицинской целью. 2. Передержка фотографической пластинки или снимка, вызывающая ослабление… … Толковый словарь Ушакова

соляризация — сущ., кол во синонимов: 1 • облучение (12) Словарь синонимов ASIS. В.Н. Тришин. 2013 … Словарь синонимов

соляризация — (фр. solarisation лат. solaris солнечный) 1) фот. превращение негативного изображения в позитивное, наступающее после воздействия на светочувствительный слой фотоматериала критического количества освещения; 2) мед. облучение солнцем (обычно с… … Словарь иностранных слов русского языка

соляризация — и; ж. [от лат. solaris солнечный] 1. Облучение прямыми солнечными лучами (обычно с лечебными целями). 2. Фото. Превращение негативного изображения в позитивное при сильной передержке во время съёмки. * * * соляризация (от лат. solaris солнечный) … Энциклопедический словарь

соляризация — soliarizacija statusas T sritis chemija apibrėžtis Ilgai šviesos veikiamo negatyvinio fotografinio atvaizdo virtimas pozityviniu. atitikmenys: angl. solarization rus. соляризация … Chemijos terminų aiškinamasis žodynas

Соляризация — (франц. solarisation, от лат. Solaris солнечный, sol солнце) фотографический эффект, заключающийся в том, что при большой засвеченности фотоматериала Оптическая плотность получаемого на нём после проявления почернения фотографического (См … Большая советская энциклопедия

Соляризация — ж. 1. Облучение солнцем (обычно с лечебными целями). 2. Превращение негативного изображения в позитивное при сильной передержке во время съемки. Толковый словарь Ефремовой. Т. Ф. Ефремова. 2000 … Современный толковый словарь русского языка Ефремовой

СОЛЯРИЗАЦИЯ — (франц. solarisation, от лат. solaris солнечный, sol Солнце) фотоизображения явление понижения оптич. плотности почернения при чрезмерных экспозициях, приводящее к превращению негативного изображения или его части в позитивное. Полная С.… … Большой энциклопедический политехнический словарь

Читайте также: