Усреднение векторных изображений для получения промежуточных изображений - PullRequest
1 голос
/ 06 февраля 2011

Я ищу алгоритм, который берет данные векторного изображения (например, наборы ребер) и интерполирует другой набор ребер, который является «средним» из двух (или более) наборов.

Чтобы положить егос другой стороны, это так же, как в Adobe Flash, когда вы «анимируете» два векторных изображения, и программное обеспечение автоматически вычисляет промежуточные изображения.Поэтому вы указываете только начальное и конечное изображения, а затем Flash заботится обо всех промежуточных изображениях.

Существует ли какой-либо установленный алгоритм для этого?Особенно в таких случаях, как разное количество ребер?

1 Ответ

2 голосов
/ 06 февраля 2011

Что именно вы подразумеваете под ребрами?Мы говорим о гладкой векторной графике, которая использует кривые?

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

По сути, вы можете просто взятьдве соответствующие точки (по одной из каждой кривой / векторной формы) и интерполируют их с помощью:

x (t) = (1-t) * p 1 + t * p 2 с t в [0,1]

(t = 0,5 тогда, конечно, даст вам среднее значение между двумя значениями)

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

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

Может быть, это помогает ...

...