卢卡斯·卡纳德(Lucas Kanade):如何计算跟踪点之间的距离



我正在使用lucas-kanade opencv实现来跟踪帧之间的对象。我希望能够做以下两件事:

  • 计算每个点移动的距离在框架之间
  • 跨帧的每个对象的跟踪边界框

我已经获得了使用cv2.goodFeaturesToTrack()跟踪的功能。我还将对象的边界框添加到要跟踪的功能中。现在,我正在使用以下来计算点之间的距离 np.sqrt(np.square(new_pts - old_pts).sum(axis=1).sum(axis=1))。我不太确定这是否是正确的方法,因为这些点的索引在new_pts中可能有所不同。old_pts中每个索引的假设是否对应于new_pts数组中的相同功能?

其次,是否有一种方法可以使用Lucas Kanade在框架上跟踪边界框?

在new_pts点中具有相同的索引。但是它们无法建立 - 请参阅状态数组:如果状态[i] == 1,则new_pts [i]包含old_pts [i]的新坐标。

对于搜索直接流(goodfeaturestotrack(frame1) -> lk流)的更强性,向后流(goodfeaturestotrack(frame2) -> lk流)并留下坐标相等的点。

最新更新