我目前正尝试在MATLAB中使用Kanade-Lucas-Tomasi跟踪器,如下例所示:Face Detection and Tracking Using the KLT Algorithm
问题: 1)。在阅读了一些文献后,我明白KLT跟踪器的输出应该是运动矢量。但是,我只将特征点视为输出。
2)。我还希望在物体移动时绘制轨迹。有人可以解释一下如何做到这一点吗?
答案 0 :(得分:4)
1)step
vision.PointTracker
方法返回点的新位置,而不是运动矢量。如果需要运动矢量,可以简单地从新点中减去旧点。
2)对于每个step
,只要您不调用setPoints
,新点将以与旧点完全相同的顺序返回。我们假设您已经跟踪了2帧的点数:
points1 = step(pointTracker, frame1);
points2 = step(pointTracker, frame2);
请记住,points1
和points2
是x-y坐标的M-by-2矩阵。因此,要绘制第i个点的轨迹,您将执行以下操作:
Xs = [points1(i,1), points2(i,1)];
Ys = [points1(i,2), points2(i,2)];
plot(Xs, Ys, '*-');
顺便说一句,一旦您对此示例感到满意,请查看如何detect and track multiple faces。