Недавно я столкнулся с одной задачей. Склеивая отдельные кадры в панорамы иногда приходилось сталкиваться с тем, что на границе кадров получалось пол человека или пол машины или пол чего-то-там-еще. Оно сразу незаметно, но при детальном рассмотрении панорамы очень портит впечатление от нее. Раз заметив такой глюк, больше не сможешь не замечать их в дальнейшем.
Как-то раз я узнал, что есть возможность исправить глюк. "Как?" - спросил себя я и полез в гугл. Видимо урок этот очень простой, чтобы о нем писали в сети, думаю потому я ничего не нашел. Вместе с тем были подозрения, что это делается как-то через слои. Photoshop у меня не стоит, зато есть Gimp (GNU Image Manipultion Programm). Долгое время пользовался Paint Brush и делал там много сложных вещей. Наверное по этой причине я предпочел Gimp тяжеловесному Photoshop. Пару часов работы и я нашел способ как это сделать. Еще пару дней экспериментов и теперь хочу поделиться результатом. Может кому-то пригодится...
Кстати, эта статья - ответ на вопрос, который я недавно поставил перед собой. Если впереди много деревьев, а за ними красивый горизонт, то как, сделав пару кадров и воспользовавшись эффектом параллакса, избавиться от этих деревьев? Возможно есть более интеллектуальные инструменты автоматизирующие процесс. Тут я расскажу как это сделать руками с помощью Gimp.
Итак исходный материал - склеенная панорама и запчасти из которых она склеивалась (профессиональные программы для работы с панорамами поддерживают режим сохранения в слои). Вот папка с включенным предпросмотром изображений.
Глюки касаются всех движущих предметов и глюков фотографа, который снимает без штатива. В моем случае - на панораме осталось пол машины - за то время пока я сделал 5 кадров, она просто проехала мимо. Исправляем это довольно просто.
Открываем склеенную панораму в Gimp. Меню Файл-Открыть... - ну как привыкли :), и видим нашу несовершенную панораму.
Красным я выделил пару мест, которые требуют доработки.
Следующим шагом мы открываем панель Слои (Меню Окна-Панели-Слои) и перетаскиваем туда один слой, на котором область прорисована полностью. Если начать с машины, то из 5 исходных слоев я выберу этот.
После перетаскивания панель Слои будет выглядеть так.
Нам стоит поменять их порядок. Порядок в списке сверху вниз соответствует порядку расположения слоев от самого поверхностного к самому глубокому. А если мы хотим добавить на исходную панораму объект из другого слоя, то слой этот стоит расположить в самый низ как фон.
Чтобы понять что будет дальше происходить - скажу так: мы будем делать в верхнем слое дырки, так, чтобы было видно то, что происходит на нижнем слое. Если на нижнем слое цельная машина - то сквозь дыру в исходной панораме мы ее увидим. Для этого нам стоит добавить Альфа-канал к верхнему слою (к исходной панораме, которую будем дырявить). Делается это правым кликом на слое в панели Слои с последующим выбором из контекстного меню пункта Добавить альфа канал. То же можно сделать из основного меню
Слой-Прозрачность-Добавить альфа канал, перед тем выбрав верхний слой на панели Слои. Выглядит это так:
После этих действий с помощью инструмента Ластик мы будем делать дырки в верхнем слое. Если не включить альфа канал, то ластик рисовал бы как цветная кисть. Но нам нужны дырки!
Выбираем инструмент Ластик и форму кисти - круг с плавными краями. Подбираем необходимый размер кисти (под размер объекта) и начинаем делать дырку.
Но дырки мы не увидим, зато увидим как постепенно проявляется нижний слой, а на нем необходимый нам объект.
Теперь можно понять почему я говорил про дырки, если на время сделать нижний слой (с машиной) невидимым то увидим верхний слой (исходную панораму) с дыркой.
Перед сохранением нам надо объединить слои вместе. Для этого надо кликнуть на верхнем слое (исходная панорама) на панели Слои правой кнопкой мыши и в контекстном меню выбрать пункт Объединить с предыдущим. Это же можно сделать выбрав слой на панели Слои а потом в основном меню: Слой-Объединить с предыдущим.
В результате все что мы видели сольется в один слой.
Дальше удаляем из слоя альфа канал. Контекстное меню слоя - Удалить альфа канал или меню Слой-Прозрачность-Удалить альфа канал.
Если в этой итерации мы не смогли исправить все дефекты, то не стоит удалять альфа канал. Можно добавить очередной слой и проделать с ним то же, что мы сделали выше. В общем, альфа канал удаляется в самом конце, перед сохранением результата.
Вот и все. Несколько подобных итераций и вот, что у меня получилось.
Кстати, с тем же успехом я мог удалить машину и всех людей.
Конец.
Если нельзя, но очень хочется, то нужно обязательно и ничего в мире не стоит того, чтобы делать из этого проблему!
Интересна Java? Кликай по ссылке и изучай!
столько времени читатели провели на блоге -
сейчас онлайн -
понедельник, 4 января 2010 г.
Подписаться на:
Комментарии к сообщению (Atom)
Пригодилось, спасибо
ОтветитьУдалить