Как я могу определить направление и количество объектов, используя Emgu? - PullRequest
1 голос
/ 04 мая 2011

Как я могу определить направление и количество объектов, используя Emgu?

Объекты движутся во всех направлениях (2D); и камера видит эти объекты (на двухмерной поверхности). Объект может иметь небольшие отличия по форме, но достаточно похожи.

Спасибо

1 Ответ

3 голосов
/ 04 мая 2011
  1. Вызвать cvAbsDiff в последовательных кадрах (может быть в каждом n -м и (n - gap) -ом кадре), чтобы обнаружить изменения и использовать пороговое значение для получения маски изменений
  2. Для каждого кадра вызовите cvUpdateMotionHistory и передайте полученную маску в качестве аргумента
  3. Чтобы получить сегменты движения (объекты) и их ориентацию:
    1. вызов cvCalcMotionGradient прохождение истории движения, накопленной предыдущими вызовами
    2. Разбить движение на сегменты по cvSegmentMotion и для каждого сегмента вычислить угол, используя cvCalcGlobalOrientation

Подобные шаги кодируются в примере motempl.c, распространяемом в библиотеке OpenCV.

Обновление

Я думал, что они реализовали почти полную привязку OpenCV и различия в интерфейсе являются результатом добавления ООП. Например, вот метод AbsDiff . Однако вещи, связанные с движением, имеют другую структуру. Используйте метод MotionInfo, чтобы получить угол движения, как в этом примере (который я нашел с помощью поиска Google).

...