Меняем фон у портрета
Наверное, каждому фотолюбителю знакома ситуация, когда изображение, полученное на фото, сильно отличается от первоначального замысла. Часто бывает, что удачно выполненный передний план оказывается расположен на довольно унылом фоне — в моей коллекции таких снимков масса. Один из них показан на рис. 1. Передний план весьма интересен: удачный ракурс, выражение лица и необычное освещение, которое создает эффект нимба из светящихся волос. И столь же неудачный задний план: парники и огород справа, фигуры с авоськами слева.
Рис. 1. Исходное изображение
Рис. 2. Изображение с новым задним планом
На рис. 2 представлено изображение, полученное путем замены фона на рис. 1. С технической точки зрения данная задача сводится к тому, чтобы вырезать фрагмент переднего плана и поместить его на другой фон. Рассмотрим, как это можно сделать. Основная проблема заключается в том, что вручную вырезать сложный контур (которым является освещенные волосы) достаточно сложно. Задача решается путем создания маски, которая позволяет разделить передний и задний планы.
Маски сохраняются в альфа-канале (об этом мы подробно напишем далее) в виде полутонового изображения, где черный цвет соответствует маскированной части изображения, а серые полутона - растушеванным областям.
В начале рассмотрим менее трудоемкий способ. В качестве основы для создания маски возьмем один из RGB-каналов. Просмотрите в палитре Channels (рис. 3), в каком канале (Red, Green или Blue) фрагмент, отделяемый от фона, выглядит наиболее контрастно. Просмотр каналов осуществляется щелчком мыши по изображению глаза на палитре Channels. В рассматриваемом случае я выбрал Red-канал. На его основе и будет показано, как создавать маску.
Рис. 3. Red-канал подходит для отделения волос от более темного фона
В панели Channels перетащите канал Red на пиктограмму Create New Channel (Создать новый слой) - на рис. 4 она выделена красным цветом. Как было отмечено ранее, для того чтобы сделать маску, мы должны сделать из изображения на рис. 3 черный передний план и белый фон. Для начала сделайте изображение инверсным с помощью команды Image а Adjust а Invert.
Рис. 4. Создание копии Red-канала
В результате вы получите негативное изображение (рис. 5).
Рис. 5. Инверсное изображение
Возьмите пипетку Set White Point (рис. 6) и щелкните мышью по фону рядом с волосами, чтобы этот фон стал областью белого цвета. Затем возьмите черную пипетку и щелкните мышью в области волос, что придаст им черный цвет (рис. 7).
Рис. 6. Фон за волосами желательно максимально приблизить к белому без потери структуры волос
Рис. 7. При переходе к черно-белому изображению часть структуры волос пропадает
Рис. 8. Область внутри полученного периметра можно закрасить черным цветом вручную
Далее, уже вручную, следует доделать маску, которая может выглядеть, например, как показано на рис. 8, где маска получилась достаточно грубой. Если требования к маске не особенно высоки, можно обойтись описанной процедурой. Если же вы хотите, чтобы волосы воспринимались именно как волосы, желательно сделать маску более аккуратной.
Существует способ, позволяющий сделать более подробную маску. Если ранее мы разделяли области только по плотности, то теперь воспользуемся разделением областей по цвету. Задача разделения волос золотистого цвета и одноцветного фона не слишком трудна, но в данном примере дело осложняется тем, что задний фон представлен пятнами разного цвета.
Конечно, изображение всегда можно представить в виде совокупности областей, где задний фон будет примерно одного цвета, и провести разделение цветов в каждой области. Чем мы и займемся.
Рис. 9. В локальной области удается разделить передний и задний планы по цвету
Выделите область, где задний план имеет примерно один цвет (рис. 9). Сделать это можно, например, инструментом «Лассо» (Lasso Tool), который представлен на рис. 10.
Рис. 10. Инструмент «Лассо»
Выполните команду Select а Color Range, в результате чего появится панель Color Range (см. рис. 9). Выберите пипеткой цвет, который вы будете отделять от цвета волос. На панели вы можете видеть участок будущей маски. Варьируя параметр Fuzziness (Размытость), можно корректировать край маски. Используя команду Save Selection, вы можете сохранить его в отдельном канале и дать ему желаемое имя; по умолчанию это будет Alpha1 (рис. 11).
Рис. 11. На небольшом участке удается достаточно качественно задать края маски
Затем опять вернитесь в режим RGB и проделайте то же самое со следующей областью.
Рис. 12. При сохранении очередного выделения его нужно сохранить в ранее созданный канал Alpha1
Рис. 13. Последовательно складывая элементы маски, удается заполнить весь периметр отделяемого изображения
Теперь нужно добавить новое выделение к маске. Для этого проделайте следующее. Выполните команду Save selection, после чего появится одноименная панель (рис. 12). В графе Channel вместо New поставьте канал, в котором вы начали создавать маску, то есть Alpha1. В разделе Operation выберите пункт Add to channel (Добавить в канал). Таким образом, у вас будет создаваться серия элементов по периметру изображения (рис. 13). Затем следует закрасить область внутри периметра черным, а ненужные элементы снаружи от периметра - белым. У вас получится маска, похожая на рис. 14. Чем больше областей вы выберете, тем точнее можно передать границу.
Рис. 14. Окончательный вид маски
Эта маска, конечно, все еще далека от совершенства, однако для учебного примера подойдет и она. Очевидно, что разделение по цвету можно делать точнее, выбирая большее количество участков.
Рис. 15. В панели Load Selection выберите канал Alpha1, в котором сформирована маска
После того как маска готова, выполните команду Select а Load Selection, в результате чего появится одноименная панель, в которой следует указать канал Alpha1, где у вас сформирована маска (рис. 15). Если вы хотите скопировать маскированную область (для переноса на новый фон), необходимо выполнить команду Select Inverse (кстати, можно обойтись без данной команды, поставив в панели Load Selection флажок в окошке Invert).
Теперь подберите другой фон для вашего портрета. Например, изображение, показанное на рис. 16. И вместо клиновых листьев поместите портрет. Выполнив копирование выделенного портрета, перейдите к изображению рис. 16 и выполните команду Paste. В результате вы получите изображение рис. 17.
Рис. 16. Данное изображение используйте как задний план для портрета
Рис. 17. Изображение, полученное при копировании выделенной области из рис. 15 на рис. 16
Обратите внимание, что после выполнения команды Paste каждое изображение (фон и портрет) находится на своем слое, и поэтому вы можете отдельно редактировать каждый слой. Если вы щелкнете в палитре (рис. 18) на изображении глаза в слое Layer1, изображение глаза исчезнет, а вместе с ним и изображение соответствующего слоя.
Рис. 18. Два полученных слоя (Layer1 и Background) можно редактировать отдельно
Рис. 19. За счет расфокусировки заднего плана акцент изображения переносится на светящиеся волосы
Теперь необходимо выделить светящиеся волосы и перенести акцент на передний план, для чего задний план нужно размыть. Перейдите на слой Background (для этого достаточно щелкнуть по нему в палитре - см. рис. 18) и примените к нему фильтр Gaussian Blur. Для этого необходимо выполнить команду Filter а Blur а Gaussian Blur. Варьируя параметры фильтра, придайте необходимую степень расфокусировки заднего плана (рис. 19).
Изображение почти готово. Однако, если присмотреться, возникает вопрос: как при таком рассеянном освещении в лесу (на заднем плане) яркий свет падает на волосы? Для устранения несоответствия следует изменить освещенность заднего плана, применив еще один фильтр: Filter а Render а Lighting Effects.
Рис. 20. Панель Lighting Effects
Фильтр Lighting Effects позволяет моделировать различные эффекты освещенности. Он имеет весьма большое количество параметров настройки, которые позволяют создавать практически любое освещение за счет изменения типа источника света, его положения, размеров и т.д. (рис. 20).
Рис. 21. Изменение освещенности на заднем плане делает более естественным освещение переднего плана
В итоге получаем окончательное изображение, показанное на рис. 21.
Комментарии можно присылать автору по адресу alproh@aha.ru.
КомпьютерПресс 4'2002