Lucas Kanade:如何计算跟踪点之间的距离

时间:2019-02-24 21:57:08

标签: python opencv computer-vision computer-science

我正在使用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跟踪跨框的边框?

1 个答案:

答案 0 :(得分:0)

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

为获得更高的鲁棒性,可以搜索直流(goodFeaturesToTrack(frame1)-> LK流),后向流量(goodFeaturesToTrack(frame2)-> LK流),并保留两个方向上坐标相等的点。