smooth/interpolate a curve (online)

hi! i’m dealing with tracking and trajectories: I’m using ofxCv, I have a blob tracking and it is ok.

The problem is that the track is not smoothed and for drawing it nicely I want to smooth it. I don’t care if the obtained curve pass through the points or not (that I think is the difference between the smoothing and interpolation afaik).

My problem is that it has to be online (as soon as i get a new point from the tracker i have to draw the smoothed track).

I’ve tried with a particle that follows a target: the new points from the tracker are set as the new target and the smoothed trajectory is the trail of the particle.
It works but… not so well: there has to a compromise in the velocity, if the velocity is too fast the particle reach all the targets and doesn’t do the smoothing as I want, and if the velocity is too slow the new targets warp the track (if the blob is moving in a circle after 3 or 4 round the particle position converge to the center).

So… I want to try something else. I had a look at spline but I have some difficulties in making it on-line…

Do you guys have some good advice?


Have you seen the ofxCv kalman example ?
Kalman filter example :

ohu… you’re right man, i know that example but i din’t think about it.
thanks for feedback!