Как из чёрно-белого фото сделать цветное
Прочёл я, что в Фотошопе для такого преобразования есть специальный фильтр. Как с ним работать - объясняют. А вот что в нём такого специального, не совсем понятно. Вероятно, специфика есть. Вот я и подумал, а не сделать ли мне такое же и в своей программе? Заодно вникну и поучусь.
Оказалось, что красить фото целиком не получается. Добавишь светлую краску - светлые фрагменты фото выглядят достойно, однако тени неестественно светлы. Сделаешь лессировку, свет потемнеет, а тени почти не изменятся в цвете. Опять не то.
А что же нужно?
Нужно, чтобы при изменении цвета, во всех местах картинки сохранились как видимая локальная светлота тона, так и контраст изображения. Используем для этого следующий алгоритм.
1. Выбираем цвет, в который будем окрашивать изображение.
2. Находим его RGB компоненты и нормируем их на единицу. То есть, попросту делим на число 255.
3. Находим светлоту тона как сумму A=R+G+B
4. Затем перебираем все пиксели в зоне преобразования. Считываем их цвет и определяем светлоту тона Ao=Ro+Go+Bo. Находим показатель степени, как отношение логарифмов – Z=Log(Ao)/Log(A). И затем находим компоненты нового цвета, перевычисляя их по формулам
R=R^Z: G=G^Z: B=B^Z
Полученным цветом окрашиваем пиксель.
Математики заметят, что мои вычисления не вполне корректны – то же значение светлоты тона мы гарантировано получим только в том случае, если компоненты цвета равны между собой, то есть, только тогда, когда и новый цвет серый. Однако практика показывает, что такое вычисление вполне приемлемо.
На иллюстрации вы можете видеть, что описанный алгоритм даёт в точности такие же результаты, что и Фотошоп. Потому я и думаю, что и там алгоритм именно такой. Цвета получаются естественные, и их при желании можно разнообразить, как угодно.
Для выполнения тонирования мы должны установить опцию «ф» на кнопке фильтры и нужную «Плотность» - степень покрытия новым цветом старого.
Цифра 9 это максимальное значение, оно означает полную замену серого тона цветным. Затем мы обозначаем область преобразования, кликнув по её диагональным углам, и подбираем с помощью палитры подходящий цвет.
Цвет BGR 146 171 206 это телесный цвет. Неважно, светлый он или тёмный, главное, чтобы казался именно телесным. Программа учтёт его конкретную светлоту и сама всё пересчитает.
Запускаем процесс кликом по кнопке «Ц».
Область прямоугольная, мы обозначили её с избытком. Потому и получили прямоугольник телесного цвета большого размера. Теперь включаем «синий ластик» и убираем лишнее, счищая незакреплённую графику. Результат на всякий случай запоминаем на «поле_6».
Теперь кликами обозначаем другую область, выбираем другой цвет, и повторяем процесс. Используя то же выделение, и кликая по кнопкам «Т» или «С», можно темнить или светлить изображение. И так же счищать синим ластиком лишнее или то, что не понравилось.
Неплохо также забрасывать начальное или промежуточное изображение на «поле_2». Ластик розового цвета будет переносить изображение с «поля_2» на поле нашего рисунка. В общем, работать легко и удобно. И мне даже показалось, что удобнее, чем в Фотошопе.
Онлайн сервисы с искусственным интеллектом не советую. Раскрашивание картинок это творческая работа. Искусственному интеллекту не растолкуешь всего того, что собственно Вам от преобразования нужно.
__________
19.09.2021
Свидетельство о публикации №221091901630
Это очень интересный материал!
Вы гений! Разгадали и поняли, (точнее, вычислили) как работает алгоритм фильтра в фотошопе, и смогли сгенерировать своё! Спасибо за разъяснения.
Для раскрашивания или цветокоррекции я иногда работаю отдельно по цветовым каналам - R-G-B, или в системе LAB. По теням и светам можно ещё регулировать в Кривых и уровнях.
Всего самого наилучшего, творческих и научных успехов Вам!
Хорошего дня!
С уважением,
Анна Мельниченко 2 25.01.2023 08:23 Заявить о нарушении
http://proza.ru/2023/02/02/143 http://proza.ru/2023/02/03/634
ещё я развил опции лессировки, темнения и светления, так что у меня теперь имеется очень хороший набор инструментов для обработки изображений.
Вот что значит, иметь связь с читателями ))
Без Вашего отзыва мне бы не пришло в голову заняться именно этим делом.
Дмитрий Маштаков 04.02.2023 05:56 Заявить о нарушении
Это очень здорово!
Я очень рада, что у Вас получилось!
Успехов Вам и в дальнейшем, всего доброго!
Анна Мельниченко 2 04.02.2023 22:05 Заявить о нарушении