2011-04-11 22 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

相關問題