首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于OpenCV的目标跟踪

基于OpenCV的目标跟踪
EN

Stack Overflow用户
提问于 2017-08-14 22:58:55
回答 1查看 409关注 0票数 1

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

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

当前,我的过程如下:

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

我的问题是:

  1. 在前10帧中,移动的鱼没有被cv2.BackgroundSubtractorMOG识别,我在函数上调整了historynmixture,它在前10帧中似乎不能很好地工作。如何在前几帧中提取运动物体?
  2. 在某些框架中,cv2.BackgroundSubtractorMOG可以获取鱼的模糊轮廓,如下图中的红色圆圈所示:

,有什么方法来填充这个斑点轮廓并把它识别为鱼吗?

这是我的代码的链接。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-08-15 05:52:12

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45684233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档