什么是OpenCV中的CvBlobTrackerAuto类?

时间:2011-04-11 11:17:11

标签: opencv

我试图了解blobtrack.cpp代码作为OpenCV的示例代码提供。在此代码中使用了名为CvBlobTrackerAuto的类。我试图找到关于这个类的一些documentation,但它没有提供详细的解释。

我特别感兴趣 CvBlobTrackerAuto::Process(IplImage *pImg, IplImage *pMask = NULL)功能。这是做什么的,这个面具的任务是什么?

提前谢谢

2 个答案:

答案 0 :(得分:5)

过去几周我一直在与CvBlobTrackerAuto合作。以下是我想到的一些事情。

CvBlobTrackerAuto::Process用于处理最后捕获的图​​像,以便更新跟踪信息(blob ID和位置)。实际上,CvBlobTrackerAuto是一个抽象类,因为它没有为CvBlobTrackerAuto::Process提供实现。 (据我所知)唯一具体的实现是CvBlobTrackerAuto1,可以在blobtrackingauto.cpp中找到。

CvBlobTrackerAuto1::Process做的是实现以下管道:

  • 前景检测:这会产生与前景对应的二进制掩码。
  • Blob跟踪:更新blob的位置。它可以使用均值平移,粒子滤波或这些的组合。
  • 后期处理:(我不确定本节的内容。)
  • Blob删除:根据那里的评论,它是“实验性的和简单的”。它会删除在最后一帧中太小或靠近图像边界的斑点。
  • Blob检测:检测新的blob。请参阅enterblobdetection.cpp。
  • 轨迹生成:(不确定它的作用)。
  • 跟踪分析:(不确定它的作用。但我确实记得读过代码并判断它对blob跟踪没有影响,所以我禁用了它。)

CvBlobTrackerAuto::Process的这个特定实现中,pMask参数根本不用。它的默认值为NULL,它被赋值给一个变量一次,以后稍后会被覆盖。

在samples / c / blobtrack_sample.cpp中找到的OpenCv示例是围绕此CvBlobTrackerAuto1类构建的,为管道中的每个模块提供了不同的选项。

我希望它有所帮助。

答案 1 :(得分:1)

当我在OpenCV邮件组中发布相同的问题时,我被引导到此链接。 This doc解释了OpenCV Blobtracker及其模块 希望这有助于任何有兴趣的人。