Морфинг изображений

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 24.02.2011
Размер файла 1,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Оглавление

  • Введение
  • 1. Морфинг - преобразование изображений
    • 1.1 Использование морфинг изображений
    • 1.2 Основные понятия и определения
    • 1.3. Морфинг и особенности работы мозга
    • 1.4. Некоторые алгоритмы для преобразования изображений (морфинга)
  • 2. Пример реализации морфинга в Mathlab
    • Контрольные примеры
  • Заключение
  • Список используемой литературы
  • Введение
  • Морфинг -- это видеоэффект, заключающийся в плавном перетекании одного изображения в другое. Иногда морфингом называют эффект наплыва, когда одна сцена затемняется или затуманивается, а вторая в это время проявляется все резче и сменяет первую. Однако лучше разделять эти понятия. В отличие от наплыва, морфинг обеспечивает соответствие характерных (наиболее привлекающих внимание) точек и контуров начального и конечного изображений. Например, преобразование одного лица в другое, при котором задается соответствие положения характерных точек глаз, носа и т.д.
  • Существует целый ряд программ для морфинга на ПК, позволяющих быстро создавать интересные эффекты. За несколько минут можно сделать видеоролик, превращающий ребенка в пожилого человека, одно животное в другое, изменить марку автомобиля и т.д. Морфинг-роликом можно украсить скринсейверы, web-страницы, рекламные и музыкальные клипы, видеофильмы, образовательные ролики, презентации, поздравительные открытки и т.п.

1. Морфинг - преобразование изображений

1.1 Использование морфинг изображений

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

Морфинг - это плавное "превращение" одного изображения в другое, во время которого конкретный элемент первого изображения "перетекает" в элемент второго изображения. Например, при морфировании одного автомобиля в другой, колесо первого превращается в колесо второго. Компьютер не может выполнить морфинг двух изображений самостоятельно - сначала художнику требуется задать соответствие элементов первого изображения элементам второго, а также другие параметры, пользуясь специальным редактором. Способ задания соответствия зависит от редактора - это могут быть точки, линии, полигоны. Сам морфинг можно разбить на три части: warping, tweening и dissolving.

Warping (коробить, искривлять) - преобразование изображения, при котором оно в отдельных областях сжимается и растягивается - как будто изображение нанесено на резину. Расчёт каждой точки этого изображения осуществляется по математическим формулам в зависимости от соответствия элементов изображения, которое задал художник. Во время warping'а элементы изображения пытаются принять положение и форму элементов второго изображения.

Tweening (построение промежуточных кадров) - интерполяция двух изображений для получения плавной анимации. Например, если соответствие элементов изображений задано точками, то интерполяцией положений точек можно получить промежуточные соответствия.

Dissolving (растворять, в кино cross-dissolving - затемнение одной сцены и осветление другой) - слияние двух изображений, при котором в качестве цвета каждой точки нового изображения берётся смесь цветов соответствующих точек двух исходных изображений в заданной пропорции.

Tweening применяет warping для интерполированных точек, то есть позволяет получить промежуточные фазы (вверху показаны конечные кадры). Dissolving объединяет два полученных изображения в одно. В целом при морфинге первый автомобиль плавно пытается принять форму второго, а второй, приняв форму первого, пытается вернуться к нормальной форме. Dissolving смешивает изображения, при этом изображение первого автомобиля постепенно затухает, а второго - появляется.

1.2 Основные понятия и определения

Single morph (одиночный морфинг) -- морфинг исходного изображения (source image) в итоговое (target image). Обычно программа для морфинга позволяет сгенерировать либо видеоролик (плавное перетекание одного изображения в другое), либо серию промежуточных изображений.

Photo to photo-morphing (фото в фотоморфинг) -- морфинг исходного изображения в результирующее, при котором результатом является серия статичных изображений, иллюстрирующих перетекание, или одно изображение, имеющее по 50% от двух исходных.

Например, при морфинге изображений двух братьев можно получить изображение их виртуального третьего брата, который будет иметь по 50% черт каждого из братьев, или при морфинге изображения мужчины в изображение женщины -- изображение их виртуального ребенка.

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

Photo to video-morphing (фото в видео) -- морфинг исходного изображения в результирующее, при котором результатом является видеоролик.

Video to video morphing (видео в видео) -- морфинг на базе двух видеороликов.

Multiple morph -- множественный морфинг, то есть морфинг серии превращений. Например, последовательное изменение лица представителей различных рас в клипе «Black or White» Майкла Джексона -- типичный пример множественного морфинга.

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

Anchor points, control points, key dots1 (якорные точки, контрольные точки, реперные точки, ключевые точки, точки соответствия) -- пары точек, определяющие соответствие между указанными пикселами исходного и конечного изображений.

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

Real time playing (проигрывание в реальном времени) -- функция позволяет просмотреть морфинг-эффект во время редактирования до экспорта в результирующий файл. Данная функция дает возможность отработать параметры проекта и только после этого экспортировать его в файл. Она особенно важна для профессионалов, которые часто прибегают к задачам морфинга и которым требуется высокая производительность работы.

Real time preview (мгновенный предпросмотр) -- функция позволяет увидеть, как редактирование проекта влияет на результат.

Morph 2 + Images -- функция дает возможность объединить несколько проектов по морфингу в непрерывный морфинг-проект. Для каждого нового морфинга предыдущий итоговый кадр (target image) является начальным (source image).

Warp morphs (морфинг-искажение) -- большинство программ для морфинга предлагают эффекты искажения фотографий, похожие на те, с которыми сталкиваются посетители зала кривых зеркал. Здесь нет единой терминологии -- производители могут называть одни и те же эффекты по-разному. Однако чаще всего эффект Warp morphs подразумевает, что можно вручную деформировать часть изображения, создавая иллюзию движения. С помощью якорных точек нужно обозначить область, которую должен занять деформированный объект (например, так можно задать анимацию, при которой у человека растет нос или меняется форма головы, вытягиваясь в виде конуса, и т.п.).

Deform/distortion morphs (морфинг- деформирование) -- обычно такие формы морфинга задаются автоматически: пользователь выбирает из меню эффект и применяет его или ко всему изображению, или локально с помощью мыши (щелчок или перетаскивание).

Mask morphing (морфинг с маской) -- маска изолирует часть изображения, делая ее неизменяемой. Mask morphing-инструменты полезны, если необходимо анимировать только часть изображения.

Layered morphing (послойный морфинг) -- каждый слой изменяется отдельно, а затем слои совмещаются и зритель видит суммируемый эффект.

Auto reverse morphing (автореверс-морфинг) -- морфинг осуществляется от исходного изображения до конечного и обратно.

Auto loop morphing (циклический морфинг) -- изменение происходит от исходного изображения до конечного и так по кругу.

1.3. Морфинг и особенности работы мозга

Иногда программы для морфинга находят весьма неожиданное применение. Ученые из Лондонского университета (University College London) провели интересное исследование, направленное на выяснение причин нарушений работы мозга у людей, имеющих проблемы с узнаванием знакомых.

В рамках выполнения данной работы были рассмотрены и охарактеризованы некоторые существующие программы для эффекта морфинга.

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

Приложение позволяет импортировать файлы в различных форматах: BMP, JPEG, TIFF, PNG, TGA, PCX, GIF, WMF, EMF.

Экспортировать можно изображения в форматах BMP, JPEG, TIFF, PNG, TGA, PCX или в виде видеофайлов в форматах AVI, Animated GIF и SWF.

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

При установке точек соответствия возможен выбор цвета и стиля для точек.

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

Программа предоставляет возможности предпросмотра и проигрывания готового ролика без экспорта в файл (Real Time Playing), при этом доступно управление проигрыванием (скорость проигрывания, направление и т.п.). Предусмотрено использование маскирования.

В версии FantaMorph 3.0 появились возможности добавления звука и экспорта результатов в отдельный EXE-файл.

MorphMan программа обладает самыми широкими возможностями из всех представленных в обзоре приложений, и нам приятно сообщить читателям, что это разработка отечественной компании, создающей программы мирового класса для обработки изображений. MorphMan 4.0 -- мощная программа для ПК по морфингу фото в видео (photo to video) и видео в видео (video to video).

MorphMan 2000 -- более ранняя и дешевая версия, которая обладает широкими возможностями морфинга фото в фото и фото в видео, поддерживает различные популярные форматы видео, включая AVI. Однако она не имеет некоторых возможностей, которые есть в MorphMan 4.0 и не обеспечивает морфинга видео в видео.

Рассмотрим подробнее уникальные возможности MorphMan 4.0.

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

Финальный морфинг выполняется на базе суперпозиции соответствующих слоев с учетом их порядка и степени прозрачности. Морфинг-слои позволяют создавать сложные эффекты.

Еще одним нововведением в MorphMan 4.0 является так называемый Canvas-слой -- специальный тип фона, который не изменяется в процессе морфинга. MorphMan позволяет выбрать в качестве фона статическое изображение, видео или холст заданного цвета.

MorphMan 4.0 хранит морфинг-проекты, включающие координаты маркеров в исходном и результирующем изображениях в XML-файле, который можно легко отредактировать во внешнем приложении. Текстовый формат MorphMan-проектов открывает широкие возможности для интеграции их с другими приложениями: возможен экспорт во Flash-анимацию, AVI или анимированный GIF.

Но главное достоинство MorphMan 4.0 -- это возможность создания морфинга видео в видео.

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

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

Отметим, что дополнительные функции можно выполнить и в других приложениях. Например, на входе программа требует файлы только в формате BMP. Но если у вас есть конвертор, то вы легко можете перевести любой файл в BMP. То же самое касается функций по обработке исходного изображения -- многим удобнее сделать это в Photoshop. Результат Morpher позволяет сохранить в формате AVI (перетекание первого кадра во второй), как статический файл BMP (среднее между первым и вторым файлами) или в виде последовательности BMP-файлов.

Если вам не хватает данных форматов, импортируйте серию файлов в Flash двумя щелчками мыши и конвертируйте их в SWF или в другой необходимый вам видеоформат.

В незарегистрированной версии в результирующих кадрах внизу ставится метка, напоминающая о том, что изображение создано с помощью Morpher. Метка ставится весьма интеллигентно: не поверх изображения, а внизу, так что удалить ее, в принципе, не составляет никакого труда. А вот информацию о том, сколько нужно заплатить, чтобы зарегистрировать версию и убрать эту подпись, мы так и не нашли ни на сайте разработчика, ни в разделе Help.

Исследование показало, что человеческий мозг всегда пытается найти сходство человека с какой-либо известной личностью, даже если это виртуальный человек, созданный с помощью морфинга. На (рис.1) показана последовательность кадров, на которых Мерилин Монро превращается в Маргарет Тэтчер. Опросы показали, что лицо, в котором содержалось 60% черт лица Мерилин Монро и 40% черт Маргарет Тэтчер, распознавалось как Мерилин Монро в более зрелом возрасте, а лицо с 40% черт Мерилин Монро и 60% черт Маргарет Тэтчер -- как лицо Маргарет Тэтчер, которое выглядит «более сексапильно, чем обычно».

Рис. 1. лицо с 40% черт Мерилин Монро и 60% черт Маргарет Тэтчер

Одним из результатов исследования явилось определение трех стадий работы мозга при распознавании лица:

1. Мозг собирает данные о физическом строении распознаваемого лица.

2. Мозг принимает решение, знакомо это лицо или нет.

3. Если лицо знакомо, человек пытается вспомнить имя.

1.4 Некоторые алгоритмы для преобразования изображений (морфинга)

Алгоритм зависит от требуемого качества, скорости и способа задания соответствия элементов изображений. Удобно задавать соответствия, пользуясь сеткой (mesh), например. Плотность сетки влияет на скорость вычислений, требования к памяти, качество получаемого изображения. Редактор, представляющий способы задания соответствий, должен привести их к сетке. Художник, работая с редактором, может вообще не подозревать о том, что в конечном счете все задается таким образом (вообще говоря, чем лучше редактор этот факт скрывает, тем он удобнее).

Сетка задается узлами, и именно эти узлы(точки) при tweenig'e плавно движутся от своего первого положения во второе, то есть tweening морфирует сетку. Warping осуществляется в соответствии с начальной сеткой и сеткой, полученной для данного кадра. Для узловых точек это легко: мы знаем, что в исходной сетке узел находится в точке (х,у) с цветом с. Значит в требуемой картинке точка, в которой теперь находится узел, имеет цвет с. Для остальных точек несколько сложнее: тут применяется билинейная или бикубическая интерполяция.

В алгоритме, предложенном Douglas Smithe для создания спецэффектов к фильму “Willow” (1988), применяется двух проходное преобразование изображения: в начале изображение деформируется по х, а затем по у.

На деформацию сетки действуют ограничения: ее ячейки не должны накладываться друг на друга, и боковые узлы не должны двигаться. В более сложных алгоритмах в узлах сетки можно задавать дополнительные параметры - например, скорость dissolving'а, таким образом, регулируя нежелательное быстрое появление светлых частей второго изображения и т.п.

Технологии, использующие неявную геометрию, полагаются на небольшое число исходных изображений, но при этом используют дополнительную информацию о соответствиях (matches) пикселей на различных изображениях. Термин неявная геометрия означает, что 3D положения точек не восстанавливаются, а целевое изображение реконструируется с помощью манипуляции с соответствиями на изображениях. Такой подход позволяет увеличить дистанцию между изображениями, на которой возможна реконструкция произвольных значений пленоптик-функции.

Алгоритм интерполяции (view interpolation) позволяет реконструировать вид с произвольного положения камеры. Для его работы необходим плотный оптический поток (dense optical flow) между двумя соседними изображениями. Однако для хороших результатов исходные камеры должны находиться рядом, чтобы во время перемещения не происходило многочисленных изменений видимости (появление, пропадание объектов). Изменения видимости составляют серьезную проблему для методов, основанных на неявной геометрии, так как они не могут быть описаны непрерывной функцией оптического потока.

Рис.2 Интерполяция вида. Слева - исходное изображение. Справа - целевое. В центре - сгенерированные изображения

Недостатком указанного метода является то, что на практике получение оптического потока может быть очень трудной задачей, в частности для реальных изображений. Для ее решения применяются технологии машинного зрения, такие как плотное стерео (dense stereo), которые известны своей неустойчивостью.

Недостатком такого метода является то, что на практике получение оптического потока может быть очень трудной задачей, в частности для реальных изображений. Для ее решения применяются технологии машинного зрения, такие как плотное стерео (dense stereo), которые известны своей неустойчивостью.

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

Рис.3 Видовой морфинг. В центре - сгенерированное изображение

Его недостатком является ограниченные возможности перемещения, а также трудности с изменениями видимости, аналогично предыдущему методу.

Эти методы, по сути, используя набор из двухмерных выборок пленоптик-функции (изображений), интерполируют ее, достраивая до непрерывной в области между известными значениями.

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

Кривые Безье. Одним из основных элементов векторной графики являются кривые Безье, так как метод кривых Безье позволяет создавать кривые любой формы. Они широко используются для решения задач аппроксимации, потому что их удобно описывать аналитически, а также просты для наглядного геометрического построения. Названы они так были в честь Пьера Безье, он первым представил их широкой публике (это было в 1962 г.), хотя разработал их первым Поль де Кастелье. Разрабатывались кривые независимо обоими инженерами для проектирования кузовов автомобилей французских компаний "Рено" (Безье) и "Ситроен" (де Кастелье). Именем де Кастелье назвали рекурсивный метод построения кривых (алгоритм де Кастелье). Впоследствии кривые Безье стали широко использоваться не только в автомобилестроении, но и в системах автоматизированного проектирования и программах компьютерной графики для моделирования гладких линий; однако не все виды кривых Безье имеют широкое применение в компьютерной графике - кривые высших степеней используют редко ввиду их высоких требований к вычислительным ресурсам, поэтому наиболее популярными являются кубические кривые Безье (для создания сложных линий, кривые объединяют в сплайны, причем смежные опорные точки обеих кривых должны лежать на одной линии).

Рис.4 Кривая Безье и, образующий ее, многоугольник

Кривая Безье задается многоугольником и имеет математическое параметрическое представление вида:

где базис Безье или Бернштейна, или функция аппроксимации

-- это i-тая функция базиса Бернштейна порядка n. Здесь i -- порядковый номер опорной вершины, n -- порядок определяющей функции базиса Бернштейна -- и, следовательно, сегмента полиномиальной кривой, на единицу меньше количества точек определяющего многоугольника. - биномиальные коэффициенты.

- функция компонент векторов опорных вершин (координаты вершин многоугольника Безье).

Метод de Casteljau основан на разбиении отрезков, соединяющих исходные точки в отношении t (значение параметра), а затем в рекурсивном повторении этого процесса для полученных отрезков.

Кривые Безье бывают линейные, квадратичные, кубические и т.д. - кривые высших степеней. Линейная кривая Безье является отрезком и задается двумя опорными точками, которые являются концами этого отрезка; квадратичная кривая имеет 3 опорные точки; далее аналогично.

Примеры математического писания сплайнов 1,2,3-его порядков:

1.

2.

3.

Преобразование квадратичных кривых Безье в кубические:

Квадратичная кривая Безье с координатами преобразовывается в кубическую кривую Безье с координатами

Некоторые свойства кривых Безье:

· Функции базиса вещественны.

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

· Основа формы кривой повторяет очертания многоугольника.

· Первая и последняя точки кривой совпадают с соответствующими точками определяющего многоугольника.

· Векторы касательных в концах кривой по направлению совпадают с первой и последней сторонами многоугольника.

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

· Кривая обладает свойством уменьшения вариации. Это означает, что кривая пересекает любую прямую линию не чаще, чем определяющий многоугольник.

o В случае, если выпуклые оболочки не пересекаются, то и сами кривые не пересекаются.

· Кривая инвариантна относительно аффинных преобразований.

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

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

Рис. 5 Сплайн, составленный двух из кривых Безье

морфинг алгоритм графический изображение интерполяция

В случае с векторной графикой, чаще всего приходится решать задачу плавного соединения кубических кривых Безье, условия для состыковки кривых Безье в сплайн, также как и многое другое можно найти в книге "Математические основы компьютерной графики" Д. Роджерса, 2001 г.

При создании сплайнов в векторных редакторах чаще всего используются следующие понятия:

· сегмент - это часть линии сплайна между двумя соседними верши-нами;

· вершины - различаются по типу и определяют степень кривизны сегментов сплайна, прилегающих к этим вершинам.

Обычно в программах используются четыре типа вершин:

· Corner (С изломом) -- вершина, примыкающие сегменты к которой не имеют кривизны;

· Smooth (Сглаженная) -- вершина, через которую кривая сплайна проводится с изгибом и имеет одинаковую кривизну сегментов с обеих сторон от нее;

· Bezier (Безье) -- вершина, подобная сглаженной, но позволяющая управлять кривизной сегментов сплайна с обеих сторон от этой вершины: для этого вершина снабжается касательным отрезком с маркерами, перемещая маркеры касательных отрезков вокруг вершины, можно изменять направления, по которым сегменты сплайна входят в вершину и выходят из нее, а изменяя расстояние от маркера до вершины -- регулировать кривизну сегментов сплайна;

· Bezier Corner (Безье с изломом)-- вершина, которая, как и вершина типа Bezier, снабжена касательным вектором, но у вершин Bezier Corner (Безье с изломом) касательные не связаны друг с другом отрезком, и маркеры можно перемещать независимо.

2. Пример реализации морфинга в Mathlab

GUI_point_finder1.m:

%Program for user to identify key points on two images image which will be

%used for a morph. Output vectors of points are "vector1" and "vector2"

%which correspond to the first and second images read in.

clear

[FileName,PathName] = uigetfile('*.*','Choose A Picture');

pic1=(imread(strcat(PathName,FileName)));

points=46; %number of points on people to use- see instruction file

vec=[47,259;164,142;156,348;275,133;278,177;282,224;274,385;278,337;282,291;292,93;302,64;419,113;285,426;304,450;418,400;296,170;314,209;335,170;314,130;310,168;314,261;295,342;314,381;333,342;315,303;310,342;443,227;452,258;442,293;487,259;502,317;517,259;502,199;483,134;475,383;576,138;576,375;606,259;673,259;564,180;563,333;173,259;75,169;67,342;157,92;164,431];

y=vec(:,1);

x=vec(:,2);

subplot(1,2,2)

imshow('face-nox.jpg')

for i=1:points

subplot(1,2,2)

hold on

plot(x(i),y(i),'xr','MarkerSize',20);

hold off

%picture 1

subplot(1,2,1)

imshow(pic1)

[x1(i) y1(i)] = ginput(1);

subplot(1,2,2)

hold on

plot(x(i),y(i),'xg','MarkerSize',20);

hold off

end

close

vector=round(cat(2,y1',x1'));

savefile = strcat(FileName,'.mat');

save(savefile, 'pic1', 'vector')

GUI_point_finder2.m:

%Program for user to identify key points on two images image which will be

%used for a morph. Output vectors of points are "vector1" and "vector2"

%which correspond to the first and second images read in.

clear

[FileName,PathName] = uigetfile('*.*','Choose A Picture');

pic1=(imread(strcat(PathName,FileName)));

[FileName2,PathName2] = uigetfile('*.*','Choose A Picture');

pic2=(imread(strcat(PathName2,FileName2)));

points=14; %number of points on people to use- see instruction file

subplot(1,2,1)

imshow(pic1)

subplot(1,2,2)

imshow(pic2)

for i=1:points

subplot(1,2,1)

[x1(i) y1(i)] = ginput(1);

hold on

plot(x1(i),y1(i),'.r','MarkerSize',10);

hold off

subplot(1,2,2)

[x2(i) y2(i)] = ginput(1);

hold on

plot(x2,y2,'.g','MarkerSize',10);

hold off

subplot(1,2,1)

hold on

plot(x1,y1,'.g','MarkerSize',10);

hold off

end

close

vector=round(cat(2,y1',x1'));

savefile = strcat(FileName,'.mat');

save(savefile, 'pic1', 'vector')

vector=round(cat(2,y2',x2'));

pic1=pic2;

savefile = strcat(FileName2,'.mat');

save(savefile, 'pic1', 'vector')

colormorph.m:

%Takes two composite image files prepared in 'pointinder.m' and morphs from

%one to the other smoothly

clear;

tic

%Read in composite image/vector files prepared in pointfinder=====

[FileName,PathName] = uigetfile('*.*','Choose The Starting Picture Composition');

[FileName2,PathName2] = uigetfile('*.*','Choose The Target Picture Composition');

load(strcat(PathName,FileName));

images=double(pic1);

vectors=vector;

load(strcat(PathName2,FileName2));

imagef=double(pic1);

vectorf=vector;

[x,y,z]=size(images); %adds on corner points to vectors - allows cubic to work

corners=[1,1;1,y;x,1;x,y];

vectors=cat(1,vectors,corners);

vectorf=cat(1,vectorf,corners);

vecdiff=(vectors-vectorf);

[X,Y] = meshgrid(1:x,1:y);

frames=50;

final=zeros(x,y,z);

finalf=zeros(x,y,z);

morph=zeros(x,y,z);

%=====================================

%Interpolate changes across all pixels in image

totaltranx=(griddata(vectorf(:,1),vectorf(:,2),vecdiff(:,1),X,Y,'v4'))';

totaltrany=(griddata(vectorf(:,1),vectorf(:,2),vecdiff(:,2),X,Y,'v4'))';

for n=2:frames

%Apply changes incrementally==========

transx=round(totaltranx.*(n-1)/frames);

transy=round(totaltrany.*(n-1)/frames);

tranfx=round(transx-totaltranx);

tranfy=round(transy-totaltrany);

%=====================================

for i=1:x

for j=1:y

if (i+transx(i,j)<=x)&&(j+transy(i,j)<=y)&&(i+transx(i,j)>=1)&&(j+transy(i,j)>=1)

final(i,j,1)=images(i+transx(i,j),j+transy(i,j),1);

final(i,j,2)=images(i+transx(i,j),j+transy(i,j),2);

final(i,j,3)=images(i+transx(i,j),j+transy(i,j),3);

end

if (i+tranfx(i,j)<=x)&&(j+tranfy(i,j)<=y)&&(i+tranfx(i,j)>=1)&&(j+tranfy(i,j)>=1)

finalf(i,j,1)=imagef(i+tranfx(i,j),j+tranfy(i,j),1);

finalf(i,j,2)=imagef(i+tranfx(i,j),j+tranfy(i,j),2);

finalf(i,j,3)=imagef(i+tranfx(i,j),j+tranfy(i,j),3);

end

end

end

morph(:,:,:)=imlincomb((n-1)/frames,finalf(:,:,:),(frames-n+1)./(frames),final(:,:,:));

morph=uint8(morph);

figure(1)

h=imshow(morph(:,:,:));

saveas(h,['framet' num2str(n) '.tif'])

% final=uint8(final);

% finalf=uint8(finalf);

% h=imshow(final(:,:,:));

% saveas(h,['frametcheese' num2str(n) '.tif'])

% h=imshow(finalf(:,:,:));

% saveas(h,['frametmouse' num2str(n) '.tif'])

end

h=imshow(uint8(images(:,:,:)));

saveas(h,['framet' num2str(1) '.tif'])

h=imshow(uint8(imagef(:,:,:)));

saveas(h,['framet' num2str(frames+1) '.tif'])

toc

Контрольные примеры

Заключение

Иногда морфинг эффект можно увидеть в кинофильмах когда один объект внезапно превращается во что-то другое. Несмотря на кажущуюся сверхсложность создания такого эффекта морфинга превращения перетекания подобные приёмы использовались и используются довольно давно.

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

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

Список используемой литературы

1. Морфинг соф [электронный ресурс]. Режим доступа: http//lostmarble.ru/.

2. Учимся морфингу Урок 1 [ электронный ресурс]. Режим доступа: http//www.compress.ru.

3. Статья «Морфинг»[ электронный ресурс]. Режим доступа http//uerter.nm.ru.

4. Алгоритмы компьютерной графики (методы растрирования кривых): учебное пособие. [электронный ресурс]. Режим доступа: http//window.edu.ru/window_catalog/pdf2txt?p_id=6470&p_page=1

Размещено на Allbest.ru


Подобные документы

  • Теоретические и практические аспекты реализации и внедрения Captcha. Разработка методов повышения стойкости теста к автоматическому распознаванию. Алгоритмы генерации изображений. Морфинг шрифтов как новый метод искажения. Правила внесения искажений.

    дипломная работа [4,0 M], добавлен 13.10.2017

  • Растровая графика, составление графических изображений из отдельных точек (пикселей). Растровые графические редакторы. Векторная графика - построение изображения из простых объектов. Достоинства, недостатки и применение растровой и векторной графики.

    презентация [7,8 K], добавлен 06.01.2014

  • Математическая модель построения кривых Безье с описанием реализации на языке Visual С++. Вычисление длины кривой. Условие непрерывности соседних кривых Безье, частные случаи. Структура программы, вызываемые функции. Описание основных алгоритмов.

    курсовая работа [405,3 K], добавлен 06.08.2013

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

    контрольная работа [220,7 K], добавлен 27.04.2012

  • Описание математических методов представления и обработки графических изображений. Описание разработанного программного дополнения. Описание функций и их атрибутов. Представление и обработка графических изображений. Результаты тестирования программы.

    курсовая работа [1,7 M], добавлен 27.01.2015

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

    дипломная работа [3,0 M], добавлен 29.11.2011

  • Характеристика цифровых изображений, применяющиеся в издательской деятельности. Отличительные особенности растровых и векторных изображений, понятие цветового охвата, изучение моделей для описания отраженных цветов. Форматы и виды графических файлов.

    контрольная работа [22,9 K], добавлен 16.09.2010

  • Цифровые рентгенографические системы. Методы автоматического анализа изображений в среде MatLab. Анализ рентгеновского изображения. Фильтрация, сегментация, улучшение изображений. Аппаратурные возможности предварительной нормализации изображений.

    курсовая работа [890,9 K], добавлен 07.12.2013

  • Общая информация о графическом формате. Описание формата Microsoft Windows Bitmap. Структура файла DDВ исходного формата ВМР. Преобразования графических файлов. Просмотр и редактирование растровых изображений. Создание многодокументного приложения.

    дипломная работа [1,5 M], добавлен 06.06.2010

  • Типы изображений (черно-белые, полутоновые, цветные) и их форматы. Устройства, создающие цифровые изображения, и их параметры. Применение и характеристики методов сжатия изображений. Поиск по содержимому в базах данных изображений. Структуры баз данных.

    презентация [360,4 K], добавлен 11.10.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.