2 заметки с тегом

Замена цвета

Частотное разложение. Накладываем набивку на ткань

В одном из прошлых постов я рассказывал о том как изменить цвет объекта на фотографии.

Это работает для однотонных объектов, но что если однотонная футболка должна стать полосатой?

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


Серая футболка должна стать голубой в бело-тёмно-синюю полоску
Это набивка для футболки

Копируем футболку на отдельный слой.

Чтобы результат вышел достовернее нужно выделить отдельные детали, из которых состоит модель. В нашем случае их четыре: горловина, левый и правый рукава и большая передняя деталь. Слева немного видно заднюю часть, для упрощения я решил проигнорировать её.

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

Каждую деталь обводим пером, загружаем контур в выделение и создаем из выделения маску для набивки. И так четыре раза.

Пока что выглядит не очень убедительно :)

Продолжим.

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


Чтобы редактировать набивку отдельно от маски нужно на панели слоёв кликнуть на иконку с цепью между слоем и его маской.


Трансформация довольно грубая, позднее мы подправим с помощью liquify

Теперь нам нужно выделить на отдельные слои текстуру с футболки, тени и света.

Посмотрим, как должна выглядеть панель слоёв:

Детали достанем с помощью фильтра high pass. Для этого дублируем слой с футболкой и кладем его поверх набивок.

На копию слоя применим Filter—Other—High Pass с такими параметрами, чтобы видимой осталась только текстура ткани. Запомните это значение, оно нам еще понадобится.

Меняем режим наложения слоя с текстурой на Linear Light и непрозрачность 50%.

На увеличенном фрагменте видно, что появилась довольно убедительная текстура, но футболка по-прежнему плоская — не хватает светотеневого рисунка. Им и займёмся.

Создаём два solid color слоя Layer—New fill layer—Solid color. Один слой называется Shadow с режимом наложения Multiply, а второй Highlights и режим наложения будет Soft Lights. Как не трудно догадаться — один будет отвечать за тени, а другой за света. В качестве цвета темных участков я выбрал теплый почти чёрный цвет #241e16, а освещение оставил чисто белым. Потом можно будет подвигать цвета и посмотреть, что выйдет. Пока я предполагаю, что эти дадут неплохой результат.

Помните, что у нас осталась нетронутая копия вырезанной футболки? Из нее мы сейчас сделаем маски для наших solid color слоёв.

Выделим маску у слоя Shadow и перейдём в меню Image—Apply Image. В качестве источника выбираем нетронутый слой с футболкой и ставим галочку Invert.

В нашем случае изначальный цвет футболки нейтрален, а значит во всех каналах изображение одинаковое и нет нужды выбирать какой-то из каналов. Если бы футболка была цветной, то в качестве источника мы бы выбрали не RGB, а самый контрастный канал.

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

Не нужно делать слишком сильный контраст иначе тени выйдут чересчур резкими.

Точно так же создадим маску для слоя Highlight, только галочку Invert ставить не нужно. И кривой добавим контраста.

Сгруппируйте все слои, которые относятся к футболке и примените к группе маску повторяющую контур футболки. Для этого кликните с зажатым контролом по стою с футболкой, загрузится выделение, и затем выберите группу и нажмите Shift+Ctrl+Q на клавиатуре.

Поскольку мы уже вытащили всю мелкую фактуру на отдельный Linear Light слой, в светах и тенях она нам уже не нужна. Применим фильтр Gaussian Blur на маски слоёв Shadow и Highlight с тем же радиусом, который был когда мы применяли фильтр High Pass.

Я решил убавить непрозрачность слоя Shadow до 80%, а Highlight до 70%. И для большей убедительности отрастрировал слои с набивкой и прошёлся по складкам фильтром Liquify.

Так выглядит в итоге панель слоёв

Ну и финальный результат:

И кусочек покрупнее:

2018   Photoshop   Замена цвета   Ретушь   Частотное разложение

Перекрашиваем объекты на фото

Представьте, что вы придумали сценарий, пригласили модель, провели фотосессию и выбрали самый удачный снимок. Показываете его заказчику, а он заявляет, что майка и шорты должны быть одного цвета. Более того — цвет этот должен быть синим. И не абы какой синий, а совершенно конкретный пантон 17-4540TPX.

Не спешите мрачнеть, предвкушая длительную ретушь. Сейчас расскажу, как я поступаю в такой ситуации.

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

Начнем с шорт.

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

Введем значения RGB с сайта в окно Color Picker. Запоминаем координаты Lab, а лучше записываем на бумажку.

Переводим изображение в пространство Lab.

Теперь нужно выделить шорты и отметить пипеткой цвет, который максимально передает естественный оттенок. Без теней, светов и рефлексов.

Я отметил еще цвет майки, потому что в любом случае мы будем ее перекрашивать тоже.
Чтобы поставить такую отметку нужно либо на палитре инструментов выбрать инструмент Color sample tool, либо обычной пипеткой кликнуть по нужному участку изображения с зажатой клавишей Shift.

Не забудьте установить в настройках пипетки усреднение как минимум 5х5 пикселей. Это делается в выпадающем меню Sample Size при активном инструменте пипетка.

Отмеченные образцы появятся на панели Info.

Образец #1 — цвет майки, а #2 — это шорты

Добавляю корректирующий слой с кривыми. К нему автоматически добавится маска из нашего выделения.
Моя задача — прогнуть кривые таким образом, чтобы координаты цвета в выбранной точке стали такими же как у того цвета, в который мы красим объект.

Исходный цвет у нас сильно положительный L69 а43 b70, а целевой сильно отрицательный L57 a-21 b-35. Значит для начала нужно инвертировать каналы а и b. Можно сделать это выделив по очереди каналы на панели Channels и для каждого нажав Ctrl+i на клавиатуре. Но я предпочитаю использовать кривые, так получается больше контроля над результатом.

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

Вот такие кривые я использовал

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

Пространство Lab позволяет гнуть кривые невообразимым образом. Например здесь левую часть кривой в канале a мне пришлось опустить чтобы избавиться от зеленоватого оттенка в тенях. Представляете, что стало бы с цветом от кривой такой формы в пространстве RGB?

На панели Info видны значения до/после применения кривой

Дополнительно я прошелся мягкой кистью с непрозрачностью 20% по маске у слоя с кривыми в местах где остались оранжевые рефлексы от шорт.

Теперь майка

С майкой проделываем всё тоже самое.
Выделение, кривые и по маске подкрашиваем рефлексы.

Комплект кривых для майки

Для того чтобы достать волосы я использовал смешение слоев Blend If, тем самым сделав слой с кривыми прозрачным на тех участках, где нижележащий слой не розовый.

Мощный инструмент, когда-нибудь сделаю пост про него
Готово. Листайте чтобы сравнить
2017   Photoshop   Замена цвета   Ретушь