我正在使用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流)并留下坐标相等的点。