public PointF[] filterPoints(PointF pt) { syntheticData.state[0, 0] = pt.X; syntheticData.state[1, 0] = pt.Y; Matrix <float> prediction = kalFilter.Predict(); PointF predictPoint = new PointF(prediction[0, 0], prediction[1, 0]); PointF measurePoint = new PointF(syntheticData.GetMeasurement()[0, 0], syntheticData.GetMeasurement()[1, 0]); Matrix <float> estimated = kalFilter.Correct(syntheticData.GetMeasurement()); PointF estimatedPoint = new PointF(estimated[0, 0], estimated[1, 0]); syntheticData.GoToNextState(); PointF[] results = new PointF[2]; results[0] = predictPoint; results[1] = estimatedPoint; px = predictPoint.X; py = predictPoint.Y; cx = estimatedPoint.X; cy = estimatedPoint.Y; return(results); }