我正在使用动态时间扭曲来查找与模板轨迹不匹配的轨迹段。
模板轨迹:
. . .
. .
. .
. .
. . .
.
测试轨迹:
.
. .
. .
. .
. .
. .
. . .
.
使用动态时间扭曲,我发现以下几点不匹配(标有星号)
*
* *
. .
. .
. .
. .
. . .
.
现在我想扩大我所做的错误, 我将错误(非匹配)点的x和y坐标乘以一个因子 X = X * 1.2; Y = Y * 1.2;
这给了我这样一个畸形的轨迹:
*
* *
. .
. .
. .
. .
. . .
.
但是我想要一个平滑的轨迹,其中所有点都被改变并且错误被扩大。像这样的东西:
*
* *
. .
. .
. .
. .
. . .
.
我该怎么做?
PS:我真的无法用一种简单的方式来描述我遇到的问题。我正在使用C ++,无论如何解释你的解决方案。答案 0 :(得分:1)
将A(t)定义为时间= t时的位移矢量。然后,每个点的位移矢量是其位置矢量(x,y)减去先前的位置矢量。
向上缩放这些向量以获得缩放的误差向量,然后通过将向量添加到一起来从一点移动到另一点。这不仅会移动误差的范围(y轴),还会移动域(x轴),因此它看起来会很平滑。
有用吗?