Обработка кадров панорамы на компьютере распадается на три этапа:

• сшивка (stiching) и согласование фрагментов по всем параметрам;

• обработка швов (blending);

• коррекция финального изображения.

Размер холста сначала делаем равным двум фрагментам с небольшим запасом по вертикали и по горизонтали. Выбираем фрагмент, содержащий смысловой центр изображения, передвигаем его слой на вершину стопки слоев и делаем видимым. Это будет первый слой. Слои остальных фрагментов скрываем (Рис. 7.30а).

Рис. 7.30. Начало построения панорамы.

Выбираем один из двух фрагментов этого же ряда, смежных с отобранным, например, правый. Передвигаем его слой непосредственно под первый слой и делаем видимым. Далее сдвигаем изображение во втором слое так, чтобы какая-нибудь деталь обоих фрагментов совпала. Этой деталью может служить небольшой элемент изображения (пятнышко, пересечение линий или вершина угла) вблизи края первого фрагмента, который легко отыскивается и на втором фрагменте. На остальные нестыковки пока внимания не обращаем. Скрепляем оба слоя для того, чтобы при перемещениях они двигались как единое целое (Рис. 7.30б).

Рис. 7.31. Пристыковка фрагментов панорамы.

Таким же образом продолжаем пристыковывать фрагменты этого слоя панорамы, двигаясь в одну сторону. Уже скрепленные слои выдвигаем за границу холста, чтобы они не мешали. Когда мы дойдем до края изображения, вершина стопки слоев будет содержать лесенку кадров в виде видимых и скрепленных между собой слоев (Рис. 7.31а).

Далее делаем такую же лесенку в другую сторону (Рис. 7.31б). Затем, в случае многорядной панорамы, переходим к соседнему ряду кадров панорамы, начиная с фрагмента, смежного с первым в стопке слоев (на рисунке 7.31 панорама состоит только из одного ряда кадров). На этот раз двигаем кадр нового ряда и совмещаем его сначала с ближайшими фрагментами уже построенного ряда панорамы, а потом – с соседним кадром по горизонтали. Если одновременно совместить со всеми соседними кадрами не удается, выбираем наилучший компромиссный вариант. Остальные нестыковки по-прежнему игнорируем.

Когда все фрагменты пристыкованы, наступает «момент истины». Делаем размер холста равным размеру слоев, а масштаб такой, чтобы все изображение поместилось на экран (Рис. 7.31в). Смотрим, получилось ли то, что хотелось сделать (Рис. 7.32, в этот момент иностранцы кричат wow!).

Бывает, но редко, что после первичного выравнивания фрагментов обнаруживается, что продолжать не стоит. Например, если в середине панорамы есть дыра, то есть, какие-то смежные кадры не пересекаются. Небольшие дырки иногда можно исправить инструментом «лечить прозрачное» (Heal Transparency, Resynthesizer Plugin).

Рис. 7.32. Состыкованные кадры панорамы.

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

Рис. 7.33. Законченная панорама (небо еще нужно доработать).

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

Рис. 7.34. Та же панорама, собранная программой hugin.

<p>7.6. Порядок наложения фрагментов</p>

Вернемся к текущему проекту. Теперь нужно определить, в каком порядке расположить фрагменты в стопке слоев. В предыдущем параграфе мы передвигали фрагменты в плоскости экрана, теперь же будем перемещать их в перпендикулярном направлении (Программисты называют это z-order).

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

Причины для перемещения слоя вверх могут быть следующими:

1) если при этом уменьшается количество швов (передвинутый вверх фрагмент перекрывает сразу несколько границ кадров);

2) если качество (резкость и т. д.) перемещаемого вверх фрагмента лучше;

3) если при этом упрощается выравнивание фрагментов, например, если какой-либо объект перестает попадать на область шва.

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

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

<p>7.7. Выравнивание фрагментов</p>
Перейти на страницу:

Похожие книги