Что такое класс CvBlobTrackerAuto в OpenCV? - PullRequest
1 голос
/ 11 апреля 2011

Я пытаюсь понять код blobtrack.cpp, предоставленный в качестве примера кода с OpenCV.В этом коде используется класс с именем CvBlobTrackerAuto.Я пытался найти некоторую документацию об этом классе, но он не дает подробного объяснения.CvBlobTrackerAuto::Process(IplImage *pImg, IplImage *pMask = NULL) функция.Что это делает и для чего используется эта маска?

Заранее спасибо

Ответы [ 2 ]

5 голосов
/ 12 апреля 2011

Я работал с CvBlobTrackerAuto в последние несколько недель. Вот некоторые вещи, которые я выяснил.

CvBlobTrackerAuto::Process используется для обработки последнего захваченного изображения с целью обновления информации об отслеживании (идентификаторы и позиции BLOB-объектов). На самом деле, CvBlobTrackerAuto является абстрактным классом, поскольку он не обеспечивает реализацию для CvBlobTrackerAuto::Process. Единственная конкретная реализация (насколько я могу судить) - это CvBlobTrackerAuto1, которую можно найти в blobtrackingauto.cpp.

Что CvBlobTrackerAuto1::Process делает для реализации следующего конвейера:

  • Обнаружение переднего плана: создает двоичную маску, соответствующую переднему плану.
  • Отслеживание BLOB-объектов: обновляет положение BLOB-объектов. Он может использовать среднее смещение, фильтры частиц или их комбинацию.
  • Постобработка: (Я не уверен в том, что делает этот раздел).
  • Удаление BLOB-объектов: это «экспериментально и просто», согласно комментарию. Удаляет капли, которые были слишком маленькими или находились вблизи границ изображения в последних кадрах.
  • Обнаружение BLOB-объектов: обнаружение новых BLOB-объектов. См .ringingblobdetection.cpp.
  • Формирование траектории: (не уверен в том, что он делает).
  • Отслеживание анализа: (не уверен, что он делает. Но я помню, что прочитал код и решил, что он не влияет на отслеживание BLOB-объектов, поэтому я отключил его.)

В этой конкретной реализации CvBlobTrackerAuto::Process параметр pMask вообще используется ни для чего. Он имеет значение по умолчанию NULL и назначается переменной один раз, но будет перезаписан через несколько строк.

Пример OpenCv, который можно найти в samples / c / blobtrack_sample.cpp, построен вокруг этого класса CvBlobTrackerAuto1, предоставляя различные параметры каждому модулю в конвейере.

Надеюсь, это поможет.

1 голос
/ 13 апреля 2011

Меня перенаправили на эту ссылку, когда я отправил тот же вопрос в почтовую группу OpenCV. Этот документ объясняет OpenCV Blobtracker и его модули.
Надеюсь, это поможет всем, кто заинтересован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...