我不了解使用 python 跟踪和标记多个移动对象的过程。我可以通过将每一帧转换为灰度,然后进行模糊,然后进行 BGS 来隔离移动对象(尽管二进制图像仍然包含大量噪声)。
我找到了带有 的轮廓cv2.findContours()
,这给了我作为 numpy 矩阵列表的斑点。我想使用卡尔曼滤波器来跟踪这些斑点,因为它非常擅长在存在噪声的情况下预测斑点的位置。然而,在我看来,考虑到 KF 的性质,找到轮廓是一个不必要的步骤,特别是因为轮廓函数返回了很多非常有问题的 blob。
我查看了kalman filter的代码,但我不知道如何告诉它跟踪 blob,更不用说告诉过滤器 blob 在哪里(或者如何单独使用 KF 创建 blob)。
我的问题是,如果 KF 事先不知道斑点是什么或在哪里,它如何处理多个对象跟踪(这就是我得到轮廓的原因,但这个结果有点可怕)。而且,一旦 KF 开始跟踪对象,它如何存储 blob 以便轻松标记?