在Java中是否有任何使用OpenCV的卡尔曼滤波器的例子?

时间:2015-04-11 06:31:49

标签: opencv kalman-filter

我正在使用OpenCV 3.0 beta,我想使用卡尔曼滤波器,但我在Java OpenCV中找不到任何卡尔曼滤波器实现的例子。我已经尝试过C ++和Python中的示例代码,但我无法将此代码完全转换为Java。

2 个答案:

答案 0 :(得分:3)

将OpenCV C ++ / Python卡尔曼滤波器示例移植到Java时可能会错过的是如何设置转换/控制或测量矩阵。不幸的是,用于卡尔曼滤波器的Opencv java doc(1)并没有提到这些方法。希望这个代码示例(2)来自github帮助。您可能需要OpenCV 3.0。

KalmanFilter kalman = new KalmanFilter(4, 2, 0, CvType.CV_32F);
Mat transitionMatrix = new Mat(4, 4, CvType.CV_32F, new Scalar(0));
float[] tM = { 1, 0, 1, 0, 
        0, 1, 0, 1,
        0, 0, 1, 0,
        0, 0, 0, 1 } ;
transitionMatrix.put(0,0,tM);
kalman.set_transitionMatrix(transitionMatrix);

答案 1 :(得分:0)

我建议您查看高效Java矩阵库(ejml)。它们在examples中提供了几个卡尔曼滤波器实现(具体示例请参见KalmanFilterSimple类)。