基于OpenCV的目标跟踪

2024-06-16 18:20:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个视频剪辑,鱼儿在水槽里游泳,小颗粒漂浮在水面上。所以,移动的物体是游动的鱼和数百个粒子。这是video sample的链接。在

我的兴趣是在每一帧中正确定位鱼。在

目前,我的程序如下:

  1. 通过将RGB转换为HSV颜色空间,移除每个单帧中的光反射(移动噪声)。在
  2. 应用背景减法cv2.BackgroundSubtractorMOG。在
  3. 使用腐蚀和膨胀来去除大部分的运动粒子噪声。在
  4. 在二值图像中找出所有斑点的轮廓,并计算所有斑点的旋转边界框。在
  5. 计算所有旋转边界框的纵横比。在
  6. 使用简单的标准来识别前景帧中的鱼:如果一个blob占据超过1个像素,那么检查它旋转的边框的纵横比。如果它有最大的纵横比,它被认为是鱼。在

我的问题是:

  1. 在前10帧中,移动的鱼不是由cv2.BackgroundSubtractorMOG来识别的,我调整了historynmixture的函数,在前10帧中似乎没有很好的工作。如何拾取前几帧中的移动对象?
  2. 在某些帧中,cv2.BackgroundSubtractorMOG可以捕捉到鱼的模糊轮廓,如下图中的红色圆圈所示:red circle有什么方法可以填充斑点轮廓并将其识别为鱼?

这是my code的链接。在

谢谢你!在


Tags: sample链接video粒子cv2噪声物体轮廓
1条回答
网友
1楼 · 发布于 2024-06-16 18:20:44

假设鱼只沿着这个方向(或相反的方向)游动,您可以尝试使用定制的形态操作来帮助生长细长的物体。它至少应该增加blob的大小,从而为MoG模型提供更多的跟踪数据。在

相关问题 更多 >