Привет, я работаю над этим какое-то время и пока не нашел хорошего решения.
Я читаю видео кадр за кадром и использую вычитание фона, чтобы определить область, в которой есть движение, и использую cvFindContours(), чтобы получить границу прямоугольника движущихся объектов.
Предполагая, что программа остается простой, может быть только 2 человека.
Эти объекты и движутся таким образом, что они могут перекрываться, поворачивать и удаляться с определенным интервалом.
Как я могу правильно обозначить этих людей x 2.
cvFindContour может возвращать границу случайным образом. для Frame1,Frame2,Frame3....FrameN
Сначала я могу сравнить прямоугольный граничный центроид, чтобы правильно обозначить человека. Как только человек перекроется и отойдет, этот подход потерпит неудачу.
Я пытался отслеживать цвет пикселя исходного объекта (однако люди довольно похожи, и некоторые области имеют похожие цвета, такие как рука, нога, волосы), поэтому недостаточно хорошо.
Я рассматривал возможность использования статистики изображений, например:
CountNonZero(), SumPixels() Mean() Mean_StdDev () MinMaxLoc () Norm ()
чтобы однозначно различать два объекта. Я считаю, что это был бы лучший подход.