Учитывая пару изображений, как автоматически создать последовательность анимации, превращающую одно изображение в другое?

Существует ли программный способ преобразования двух изображений в последовательность анимации (например, анимированный GIF), как в следующем примере?

От memrise.com, показывает анимированный GIF между двумя изображениями

Эта последовательность изображений, взятая из курса http://memrise.com, не содержит кадров, отредактированных вручную. , но, кажется, автоматически преобразуется с использованием какого-то алгоритма преобразования формы. Есть ли общий термин, используемый для описания такой анимации или алгоритма? Есть ли в ImageMagick или Photoshop/Gimp функция, которая генерирует такие анимации по паре изображений?

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

Изменить: мне только что рассказали об инструменте Gimp в меню «Фильтры» -> «Анимация» -> «Смешение», который, похоже, делает то же самое, что и морфинг jQuery: каждый кадр i равен start + (finish - start)/N*i. Другими словами, вы выполняете переход каждого пикселя независимо от начального значения к конечному значению без какого-либо преобразования формы. Приведенный пример более сложен, поскольку он изменяет контуры обоих изображений для достижения убедительного эффекта.

Другие примеры:


person Ahmed Fasih    schedule 05.12.2012    source источник
comment
нравится? codeassembly.com/examples/gallery/index.html   -  person daniel    schedule 06.12.2012
comment
Не так, @daniel, отредактировал вопрос, чтобы указать что-то более сложное (которое изменяет контуры и цвета изображения), чем простое смешивание пикселей.   -  person Ahmed Fasih    schedule 06.12.2012
comment
Ни один из ответов не позволяет запрограммировать процесс и с автоматическим созданием контрольной точки. :(   -  person Evi1M4chine    schedule 23.02.2016
comment
@ Evi1M4chine Я разочарован тем, что не смог найти инструмент, который сделал бы создание контрольных точек относительно простым. Я был бы вне себя от радости, чтобы найти тот, который автоматизировал это! С тех пор я мало искал, но потребность все еще существует.   -  person Ahmed Fasih    schedule 23.02.2016
comment
@AhmedFasih: мне это нужно для интерполяции серий изображений в видео с более высокой частотой кадров. Итак, моя логика была такой: MPEG-подобные алгоритмы имеют компенсацию движения. который использует обнаружение движения. Поэтому, если я извлеку векторы движения, я смогу автоматически использовать их как пары контрольных точек. Я нашел модифицированную версию ffmpeg, которая могла извлекать векторы движения. и простой скрипт должен уметь преобразовывать их в пары контрольных точек, которые будут использоваться, например. шейпморф. Но для меня это не стоило труда. … Возможно в будущем. …   -  person Evi1M4chine    schedule 24.02.2016


Ответы (3)


GIMP не может сделать это напрямую, но на протяжении многих лет ряд (теперь плохо поддерживаемых) плагинов для этого был выпущен третьими сторонами. Ключевое слово для поиска — «morph» — вы также должны найти кучу автономных программ для этого, от «бесплатных» до полноценных бесплатных программ, таких как xmorph

person jsbueno    schedule 06.12.2012
comment
Увидев, насколько сложными и практичными являются текущие предложения, такие как xmorph [1] и GAP (для Gimp) [2], я решил придерживаться неанимированных рисунков. [1] xmorph.sourceforge.net/home/gourlay/ public_html/Xmorph/pub/ [2] youtube.com/watch?v=qaSz8WNKjD4 - person Ahmed Fasih; 07.12.2012

Хотя это старый вопрос, поскольку упоминается ImageMagick, для всех, кто приходит сюда из Google, возможно, стоит взглянуть на этот плагин imagemagick называется shapemorph.

person Riot    schedule 06.12.2014

Имея пары векторных файлов (расширение .wmf), можно использовать линейную интерполяцию шейп-узлов в Visual Basic для приложений для создания кадров для анимации GIF, хотя объяснение этого потребует много времени. Некоторые примеры см.

http://www.giless.co.uk/animatorMorphGIFs.htm (это как слайд-шоу)

Я сделал некоторые улучшения с тех пор, а также!

person G B Shingler    schedule 12.07.2014