C ++ OpenCV卡尔曼滤波器构造函数错误

时间:2018-10-25 13:38:43

标签: c++ opencv kalman-filter

我已经在以前的C ++项目中实现了OpenCV的Kalman过滤器,现在我试图在类的上下文中使用它。

这是我通常构造卡尔曼滤波器的方式:

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 :(得分:0)

摆弄cv :: KalmanFilter的构造函数之后,代码最终使用以下私有声明进行编译:

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