C ++ OpenCV ошибка конструктора фильтра Калмана - PullRequest
0 голосов
/ 25 октября 2018

Я реализовал фильтр Калмана OpenCV в предыдущем проекте C ++, и сейчас я пытаюсь использовать его в контексте класса.

Вот как я обычно строю свой фильтр Калмана:

cv::KalmanFilter KF(4,2,0);

Сейчас я пытаюсь использовать фильтр в качестве члена класса, и у меня возникают проблемы при его инициализации.

Я пытался:

1)

class foo
{
public:
...
private:
  cv::KalmanFilter m_filter(4,2,0);
};

И я получаю следующую ошибку:

error: expected identifier before numeric constant cv::KalmanFilter m_filter(4,2,0); ^ foo.hpp:31:39: error: expected ‘,’ or ‘...’ before numeric constant

2)

Если я попытаюсь удалить инициализацию там исделать это в конструкторе класса с помощью:

.hpp

...
private:
  cv::KalmanFilter m_filter;

.cpp

constructor(...)
{
  m_filter(4,2,0);
}

Я получаю:

error: no match for call to ‘(cv::KalmanFilter) (int, int, int)’ m_filter(4,2,0); ^

1 Ответ

0 голосов
/ 25 октября 2018

После возни с конструктором cv :: KalmanFilter, код, наконец, компилируется со следующим частным объявлением:

...
private:
        cv::KalmanFilter m_filter{cv::KalmanFilter(4,2,0)};
...