Фильтр Калмана внутри структуры и не может его инициализировать

Я хочу отслеживать несколько объектов, используя Kalman Filter. Поэтому я использую структуру для определения свойств объекта, а также фильтр Калмана для отслеживания его точек. (Следующее)

struct sAsparagus
{
int iId;
int iFrameId;
int iWidth;
int iHeight;
int iX;
int iY;
int iZ;
cv::KalmanFilter KF; // Here I am defining the Kalman filter and cannot initialize.
};

Затем в цикле я пытаюсь присвоить некоторые значения этим свойствам.

   for (CvBlobs::const_iterator it = blobs.begin(); it !=blobs.end();++it)
{
sAsparagus sAsp;
sAsp.iFrameId = iCounter;

sAsp.iWidth = (it->second->maxx - it->second->minx);
sAsp.iHeight = (it->second->maxy - it->second->miny);
sAsp.iX = it->second->centroid.x;
sAsp.iY = it->second->centroid.y;
sAsp.KF(4, 2, 0);   //Here I am getting an error
vAspElements.push_back(sAsp);
}

Когда я бегу, я получаю ошибку следующим образом.

  no match for call to ‘(cv::KalmanFilter) (int, int, int)’
sAsp.KF(4, 2, 0);

Как я могу инициализировать мой фильтр Калмана здесь? Правильный ли этот подход? Я тоже пришел сюда посмотреть (Ошибка инициализации фильтра Калмана OpenCV) некоторый подход для отслеживания нескольких объектов с использованием фильтра Калмана. Куда я иду не так?

0

Решение

sAsp.KF(4, 2, 0); не может быть использован как KF был построен по умолчанию, когда вы делаете sAsparagus sAsp;, Вы не можете вызвать конструктор для уже созданного объекта. Вы можете назначить KF с временным KalmanFilter хотя вроде:

sAsp.KF = cv::KalmanFilter(4, 2, 0);

Или вы могли бы использовать init() лайк

sAsp.KF.init(4, 2, 0);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]