File Exchange

image thumbnail

2D Target tracking using Kalman filter

version 1.1 (801 KB) by

This Demo shows tracking target and prediction next position using kalman filter

54 Ratings



View License

The first just does detection by background subtraction. This can be considered as the ground truth.
The second feeds the detection output into a Kalman filter. The predicted position from the kalman filter (red) is compared against the actual ground truth position (green).
Toby Breckon,

Comments and Ratings (69)


hi , can someone help me to give input for interacting multiple model kalman filter

xue zhou


apdi (view profile)

dear Rostam FarrokhNejad , really it halps me , thank you(damet garm refiq:-)))

Hi, can someone help me to perform the same thing for a video file instead of images. Thanks


Bahare Moradi

is there any one who ca help me about this topic?
I don't know how the initialization is done? how the numbers are chosen?
please help me if you can

Bahare Moradi

Bahare Moradi

very simple and efficient!


Sajith (view profile)

This algorithm is interesting. I need to simulate any of the multiobject tracking radar algorithms. Can you help me?

Thanks in advance


Xiang CAo


I found your project on target tracking using kalman filter really interesting and different from the usual image processing programs but i have a few doubts in it.

1. How can we implement it?
2.How will this filter help us in tracking the target?
3.Should we design both hardware and software?
3.If we need not design the hardware, then which one should we use?

kindly respond and help me.


I don't know whether i have misunderstood or not, but some of the important codes are wrong.
In the line 51 of file kalman.m, x(i,:) = (xp + K*([cc(i),cr(i)]' - H*xp))', you just predicte the current position with the current real position and plot them in the same time.
That's why you get such a perfect result.
And I take a reference to other version of Kalman code like this one.
Just change it to the following code:
x(i+1,:) = (xp + K*([cc(i),cr(i)]' - H*xp))';
Correct me if i'm wrong.

Awais Nazir


Minsoo Goh


Very nice :) Even though you can get better results by deriving a better covariance process noise matrix instead of the simple identity matrix.


lin (view profile)


Please ignore my previous comment, the prediction is corret, I miss the transpose x', good job.

Please correct me if I miss something.
I think your code is wrong, though it is working.
The state prediction:
xp=A*x(i-1,:)' + Bu
will give as a result the same vector x with the g in the last element.
This matrix
multiplied by
xp = [MC/2,MR/2,0,0]'.
It is a bit pointless, since the dt elements will always be cancel out by the last zeros. Then you do correctly the observation step and the algorithm is working, but the prediction practically doesn't exist.


Alex (view profile)

Good work! Could you send me a link or a document with the explanation of the algorithm?
I don´t know why you include some variables that not are included in Matlab examples. For example: Bu.
The matrix dimensions are also different...
Link to this code:

bocatasinpan (at)

divya konda

hi sir i am doing project on system identification by measuring RSS values and i wil compare it with the offline values and i have to calculate the distance by kernel and kalman can you tel me or send me the code please.

AL Mukhtar

my e-mail is:


siva (view profile)

How can i apply this code for tracking persons? Iam not able to do it.
please explain.

mazhiver ana


Shane (view profile)

Some further explanation of some of the functions would be greatly appreciated!!! I am working on a thesis comparing different methods of object tracking, one is using the Kalman filter.
I am trying to use the same code for a simple video of a person walking past a security camera, the camera is looking straight at the relevant object. When I run the detect.m file using my own video, it starts off great, with the green circle tracking the object, once it goes half way through the video images, the green circle increases in size and the tracking is incomplete. can anyone help me please???


Fredy (view profile)

can you give me documentation about this program? please


JAIRO (view profile)

I have the same trouble than you Rana mudassar, how did you fix it?..
other question : how can I modify this m-file to detect the ball in a real time with a camera??. thanks


Hi..I am a beginner in kalman filter..Can you please tell me how kalman filter is predicting the next position of the target.

shyam p

Your work is very good. This code is tracking red color ball. Could you let me know how to modify this image to track white color ball. you can reply me at


Kalla (view profile)

I agree with Nita. What is the job of Kalman filter here?

% extract ball
[cc(i),cr(i),radius,flag] = extractball(Imwork,Imback,i);%,fig1,fig2,fig3,fig15,i;

the above code is creating trouble for me...plz says:

??? Undefined function or method 'extractball' for input arguments of type 'double'.

reply me at


Thanx for sharing the code..but can u please tell me how have you decided the values of various models(which ofcourse depend on the system used)..i mean which system have you assumed here


vo (view profile)

thanks. But can you make it by wavelet transform?


Nita (view profile)

Thanks for sharing the code.
Please can you say how kalman filter helps in tracking .
In this code you have done detection in every frame and this output is provided as the input to the kalman filter.So background subtraction and kalman filter will give similar results.So please can you explain the use of kalman filter here.

tam duy

thank you... If possible please provide me the algorithm

my email is

Ranga Rao

thank you... If possible please provide me the algorithm my email is

Jun wan

Kamil Wojcicki

Kamil Wojcicki (view profile)

Hema Gandhi

thank you... can you help me in tracking of the eye ball movement.... my email is


Goh (view profile)

Nice job.Is it possible to change ball tracking into hand movement tracking? Can u guide me to modify it?My email is you =)

Farzad Sagharchi

Farzad Sagharchi (view profile)

  • 1 file
  • 4.36667

i need matlab code for tracking of multi object based on daubechies complex wavelet transform its urgent n if possible give me some information about it

David Sánchez

Snigdha Khanum

Matlab code for object tracking using Kalman filter.

Aparna Saha

Matlab code for multi object tracking using kalman filter and SIFT features is needed.If possible send as early as possible.

milind ganure

emy shahin

Ali Ganoun

Good work

Sam Hooti

You can make it more visual

anish ?s?u?

ramo lkalka


zhigui Hu

zhigui Hu

apuri sambaiah


paakalu sailu

it is simply good

Matt Breg

wel done!! simply but efficient!!

Prince Joveluro

Thanks, it is useful

Reza mohamad

it is very good. thank you.

Sachin Raka

Farshad Fahimi

Some comments are in farsi and there is no documentation. Also you can extend it to more complicated scenarios if you wish.


I like Kalman Filter and I like you,Thank you for sharing


Dezmond Conner

Nice Work
I build my tracking device and will be great to use a Kalman filterd like yours:)

jagannath nirmal

i want some information about it
i like it
i would like to learn all releted with target tracking using kalman filter
thank you

ihsan ihsan

Great job, Thanks for sharing, May God bless you,

belhaoua abdelkrim

thank you very much, it's very clear.

harika kalashika

Brian Ho

The programming structure is clear and the approaching strict forward. thank you very much your sharing

Prasertsak Tiawongsombat

it is clear and enlightens me, thank you

vahid mousavi

i like images...



BSD License

MATLAB Release
MATLAB 7.3 (R2006b)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video