Сглаживание B-сплайна

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

Человек задал вопрос о сходстве. Но я не вижу ответа Параметры сглаживания движения и не могу комментировать эту тему.

Я работаю над стабилизацией видео уже несколько недель. Алгоритм, которому я следую, в основном включает 3 шага:

  1. БЫСТРОЕ обнаружение признаков и сопоставление двух последовательных кадров

  2. Вычисление аффинного преобразования (масштаб + поворот + перемещение x + перемещение y) по совпадающим ключевым точкам.

  3. Параметры плавного движения с использованием кубического сплайна или b-сплайна.

Я вычислил аффинное преобразование. Но я застрял на сглаживании параметров движения.

Мне не удалось оценить функцию сплайна для сглаживания трех параметров при обработке в реальном времени.

Как получить параметры сглаживания движения.

Например:

Я рассчитываю параметры движения между 2-м и 3-м кадрами, T2 (r2: вращение, x2, y2: перемещение по горизонтали и вертикали), а затем использую B-сплайн для сглаживания 3 значений. Но я не могу себе представить, как их сгладить и получить 3 сглаженных значения. (предположим, что степень p = 30)

Помогите мне, пожалуйста. Большое спасибо

введите здесь описание изображения


person user2745692    schedule 24.10.2014    source источник
comment
Что представляют эти точки данных на графике? Вы говорите о трех точках, а на графике их 19.   -  person Mark Ransom    schedule 24.10.2014
comment
Точки на графике — это один из параметров движения. Параметр движения — это масштаб, вращение и перемещение. На графике точки - это перевод, например. Параметр перевода будет получен между двумя последовательными кадрами. А затем она будет сглажена кривой b-сплайна. Но я не представляю, как это сгладить. И 19 точек на графике. Это параметр перевода двух последовательных кадров в видео. Например, T1: между кадром 1 и кадром 2, T2: между кадром 2 и кадром 3....   -  person user2745692    schedule 24.10.2014
comment
Вот все формулы, необходимые для вычисления сплайна: mathworld.wolfram.com/B-Spline.html   -  person Andrey Smorodov    schedule 25.10.2014
comment
Да. Я знаю. Но в моем случае я не знаю, как применить к нему B-сплайн.   -  person user2745692    schedule 25.10.2014
comment
Получите ваши N узлов (зависит от степени сплайна), вычислите базовые функции сплайна, затем возьмите свою точку t и подставьте ее в формулу сплайна с вычисленными параметрами. Или просто взять готовую библиотеку здесь (сплайн): github.com/Smorodov/jburkardt-cpp   -  person Andrey Smorodov    schedule 25.10.2014
comment
Я понимаю. Но я так смущен. Например, для заданного Fi i = 0,1,2,...n-1 кадров — это количество кадров в видео. В начале я оцениваю 3 параметра движения (масштаб, вращение, перемещение). И затем я хочу сгладить их, используя кривую b-сплайна. После сглаживания я хочу получить эти 3 сглаженных параметра. Предположим, что к переводу применяется значение x, степень = 30. Итак, что мне делать?   -  person user2745692    schedule 29.10.2014