我已经在以前的C ++项目中实现了OpenCV的Kalman过滤器,现在我试图在类的上下文中使用它。
这是我通常构造卡尔曼滤波器的方式:
cv::KalmanFilter KF(4,2,0);
我现在正在尝试将过滤器作为类的成员,但在初始化它时遇到了麻烦。
我尝试过:
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
如果我尝试删除那里的初始化并在类构造函数中执行以下操作:
...
private:
cv::KalmanFilter m_filter;
constructor(...)
{
m_filter(4,2,0);
}
我得到:
error: no match for call to ‘(cv::KalmanFilter) (int, int, int)’
m_filter(4,2,0);
^
答案 0 :(得分:0)
摆弄cv :: KalmanFilter的构造函数之后,代码最终使用以下私有声明进行编译:
...
private:
cv::KalmanFilter m_filter{cv::KalmanFilter(4,2,0)};