我不太理解使用Python跟踪和标记多个移动对象的过程。我能够通过将每个帧转换为灰度图像,然后模糊处理,再进行背景分割,从而隔离出移动对象(尽管二值图像仍包含大量噪声)。
我使用
我查看了卡尔曼滤波器的代码,但我不知道如何告诉它跟踪blob,更不用说告诉滤波器blob在哪里(或如何使用KF单独创建blob)。
我的问题是,如果KCF事先不知道blob的内容和位置(这就是我得到轮廓的原因),那么它如何处理多个对象的跟踪?一旦KCF开始跟踪对象,它如何存储blob以便可以轻松地进行标记?
我使用
cv2.findContours()
找到了轮廓,它给我返回了一个numpy矩阵列表作为blob。我想使用卡尔曼滤波器来跟踪这些blob,因为在存在噪声的情况下,它非常擅长预测blob的位置。但是,鉴于KCF的特性,我认为找到轮廓是一个不必要的步骤,尤其是由于轮廓函数返回了许多高度可疑的blob。我查看了卡尔曼滤波器的代码,但我不知道如何告诉它跟踪blob,更不用说告诉滤波器blob在哪里(或如何使用KF单独创建blob)。
我的问题是,如果KCF事先不知道blob的内容和位置(这就是我得到轮廓的原因),那么它如何处理多个对象的跟踪?一旦KCF开始跟踪对象,它如何存储blob以便可以轻松地进行标记?