【问题标题】:Lucas Kanade: How to calculate distance between tracked pointsLucas Kanade:如何计算跟踪点之间的距离
【发布时间】:2019-02-24 21:57:08
【问题描述】:

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

【问题讨论】:

    标签: python opencv computer-vision computer-science


    【解决方案1】:

    在 new_pts 点有相同的索引。但它们不能成立 - 查看状态数组:如果 status[i] == 1 那么 new_pts[i] 包含 old_pts[i] 的新坐标。

    为了更加稳健,它可以搜索直接流(goodFeaturesToTrack(frame1) -> LK 流),反向流(goodFeaturesToTrack(frame2) -> LK 流)并留下两个方向坐标相等的点。

    【讨论】:

    • 太棒了!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2016-07-23
    • 1970-01-01
    • 2014-11-29
    • 2014-02-28
    • 2010-10-30
    • 1970-01-01
    相关资源
    最近更新 更多