2011-04-11 83 views
1

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

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

预先感谢您

+0

当我在OpenCV邮件群组询问这个问题时,我被引导到以下链接。本文档解释了OpenCV Blobtracker及其模块https://code.ros.org/trac/opencv/export/490/trunk/opencv/doc/vidsurv/Blob_Tracking_Modules。doc希望这将有助于任何学习blobtracker的人 – Niroshan 2012-06-06 10:16:04

回答

5

我已经与CvBlobTrackerAuto在过去几周一直在努力。以下是我已经发现的一些事情。

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

CvBlobTrackerAuto1::Process做什么是实现以下管道:

  • 前景检测:这将产生对应于前景二进制掩码。
  • 斑点追踪:更新斑点的位置。它可能使用均值漂移,粒子滤波器或这些的组合。
  • 后处理:(我不确定本节的功能)。
  • Blob删除:根据在那里的评论它是“实验性和简单的”。它删除在最后帧中太小或接近图像边界的斑点。
  • Blob检测:检测新的斑点。请参阅enterblobdetection.cpp。
  • 轨迹生成:(不知道它做了什么)。
  • 跟踪分析:(不知道它做什么,但我不记得读过的代码,确定其对斑点跟踪没有影响,所以我禁用它。)

在这个特定的实施CvBlobTrackerAuto::Process,pMask参数完全没有用处。它有一个默认值NULL,它被分配给一个变量一次,只是稍后被覆盖一些行。

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

我希望它有帮助。

+0

非常详细的答案和额外信息,谢谢你 – Niroshan 2011-04-12 18:04:49

1

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

+0

你上面给出的链接要求连接到svn的用户名和密码。你有什么主意吗? – Horizon1710 2012-06-03 22:04:49

+0

@ Horizo​​n1710看来他们已经将文件移动到不同的位置。更新了到新位置的链接 – Niroshan 2012-06-06 10:14:02

相关问题