如何使变形轨迹平滑。

时间:2012-10-18 16:13:57

标签: math contour spline

我正在使用动态时间扭曲来查找与模板轨迹不匹配的轨迹段。

模板轨迹:

         .  . .
      .         . 
    .            .
  .               .
.                  .   .
                     . 

测试轨迹:

            .
          .   .
        .      .
      .         . 
    .            .
  .               .
.                  .   .
                     . 

使用动态时间扭曲,我发现以下几点不匹配(标有星号)

            *
          *   *
        .      .
      .         . 
    .            .
  .               .
.                  .   .
                     . 

现在我想扩大我所做的错误, 我将错误(非匹配)点的x和y坐标乘以一个因子 X = X * 1.2; Y = Y * 1.2;

这给了我这样一个畸形的轨迹:

         *
       *    *

    .        .
   .           . 
  .              .
 .                 .
.                    .    .
                        . 

但是我想要一个平滑的轨迹,其中所有点都被改变并且错误被扩大。像这样的东西:

         *
       *    *
     .        .

   .             . 
  .                .
 .                  .
.                    .    .
                        . 

我该怎么做?

PS:我真的无法用一种简单的方式来描述我遇到的问题。我正在使用C ++,无论如何解释你的解决方案。

1 个答案:

答案 0 :(得分:1)

将A(t)定义为时间= t时的位移矢量。然后,每个点的位移矢量是其位置矢量(x,y)减去先前的位置矢量。

向上缩放这些向量以获得缩放的误差向量,然后通过将向量添加到一起来从一点移动到另一点。这不仅会移动误差的范围(y轴),还会移动域(x轴),因此它看起来会很平滑。

有用吗?