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

C++ OpenCV Kalman filter constructor error

本文关键字:滤波器 构造函数 错误 OpenCV C++      更新时间:2023-10-16

我已经在之前的C++项目中实现了OpenCV的卡尔曼滤波器,现在我正在尝试在类的上下文中使用它。

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

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); ^

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

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