Kanade-Lucas-Tomasi 跟踪器 MATLAB

Kanade-Lucas-Tomasi Tracker MATLAB

我目前正尝试在 MATLAB 中使用 Kanade-Lucas-Tomasi 跟踪器,如本示例所用:Face Detection and Tracking Using the KLT Algorithm

问题: 1).看了一些文献,明白了KLT tracker的输出应该是运动矢量。但是,我只看到特征点作为输出。

2).我还希望在物体移动时绘制轨迹。有人可以解释一下如何做到这一点吗?

1) step 方法 vision.PointTracker returns 点的新位置,而不是运动矢量。如果您需要运动矢量,您可以简单地从新点中减去旧点。

2) 对于每个 step,只要您不调用 setPoints,新点将按照与旧点完全相同的顺序返回。假设您已经跟踪了 2 帧的点数:

points1 = step(pointTracker, frame1);
points2 = step(pointTracker, frame2);

请记住,points1points2 是 x-y 坐标的 M×2 矩阵。因此,要绘制第 i 个点的轨迹,您可以执行以下操作:

Xs = [points1(i,1), points2(i,1)];
Ys = [points1(i,2), points2(i,2)];
plot(Xs, Ys, '*-');

顺便说一句,一旦您对这个示例感到满意,请查看如何 detect and track multiple faces