File Exchange

image thumbnail

How to Detect and Track Red Colored Object in LIVE Video

version (2.22 KB) by Arindam Bose
This Video shows how to detect and track red colored object in LIVE video using MATLAB.


Updated 30 Jun 2016

View License

This code shows how to detect and track red colored object in LIVE video using MATLAB. Not only red, but also green and blue object can be detected using this algorithm.
For deteil documentation please refer to:
For video tutorial please refer to:

Cite As

Arindam Bose (2020). How to Detect and Track Red Colored Object in LIVE Video (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (31)


Ramon Yanez

I have this error:

Unable to resolve the name vision.BlobAnalysis.

Error in RedObjectTracking (line 13)
hblob = vision.BlobAnalysis('AreaOutputPort', false, ... % Set blob analysis handling

Can you help me please

Undefined variable "vision" or class "vision.TextInserter".
pls, give solution ,how to rectify that


Undefined variable "vision" or class "vision.TextInserter".

Error in redobjectracking (line 26)
htextins = vision.TextInserter('Text', 'Number of Red Object: %2d', ... % Set text for number of blobs

could you plz help how to plot centY against time , along the video playing.

please check this error, and help me out

"??? Undefined variable "imaq" or class "imaq.VideoDevice".

Error in ==> white at 10
vidDevice = imaq.VideoDevice('winvideo', 1, 'YUY2_640x480', ... % Acquire input video stream"

Akhmad Dias


Do you happen to know how to track the first identified colored object in a video when other objects will appear with the same color without referring to geometry?

Tracking isn't working much need some improvements.


got my answer down below thank you sir


sir the video stops immediately after initialization. it just freezes and show stopped. how to solve this error plz. thank you in advance

Suhas Kale

i am using matlab 2010,2013 but following error occurs.
plz help me out to sort this error.

??? Undefined variable "imaq" or class "imaq.VideoDevice".

Error in ==> MATLABProjectCode at 27
vidDevice = imaq.VideoDevice('winvideo', 1, 'YUY2_640x480', ... % Acquire input video stream


sehr gut!

Tomas Sab

very minimalistic and optimized. Works great for simple needs



This is an extremely impressive and effective code. Don't give a bad rating just because you're experiencing errors. Make sure you've installed all the necessary toolboxes and add-ons, and that your resolution value in VideoDevice is accurate


Thank you.. was Helpful

>> redObjectTrack
Undefined function or variable 'video'.

Error in redObjectTrack (line 18)
data = getsnapshot(video);
What is the problem?please tell

haris fauzi

what should i change in the code if i want to detect yellow colour? is it the threshold value? if yes, what is the threshold value for yellow? tq


i am using matlabR2012a and i am geting the following error message

Error: File: test1.m Line: 27 Column: 14
The expression to the left of the equals sign is not a valid target for an

this corrosponds to line in the code after wile loop begins i.e

while(nFrame < 500)
  rgbimage = step(vidDevice); <<<<<<<<<<<<<<<<<<<<<erroe occured here<<<<<<<<<<<
  rgbFrame = flipdim(rgbimage,2);
  diffFrame = imsubtract(rgbFrame(:,:,1),


I have Matlab 2011a and I also have the Image Acquisition Toolbox installed. However I still get the error mentioned by Faisal below. Is there an updated version of the toolbox or some such thing?

@Faisal: Install Image acquisition toolbox in your MATLAB version.


iam using matlab 2011a and iam getting the following error msg when i
use ur code.
??? Error using ==> step at 81 (i.e, error(nargchk(2,6,ni)); in step.m file)
Not enough input arguments.

Error in ==> RedObjectDetection at 39
rgbFrame = step(vidDevice); % Acquire single frame


encountered this error :( Please help
Undefined variable "imaq" or class "imaq.VideoDevice".

Error in redobjectracking (line 10)
vidDevice = imaq.VideoDevice('winvideo', 1, 'YUY2_640x480', ... % Acquire input video stream

Arindam Bose

Please notice the loop counter, I have made it 20 for a shorter demonstration. Please change to several thousands to ensure the suitable run time of the code.

Arindam Bose

@Masoud : Because, I used a while loop in the middle of code and set the loop counter to around 200 frames. You can change the loop counter to several thousand. I did not make the loop counter Inf because it will cause a little inconvenience. In that case you have to release the camera handle individually by running this code piece "release(vidDevice)".
So its better to have a loop counter. You can change it to several thousands to run it for several minutes. I made it smaller for demonstration.
Make a change in the line:
while(nFrame < 50000)

after running this the program will stop after seconds...
What's the problem????


In my code I used
vidDevice = imaq.VideoDevice('winvideo', 1, 'YUY2_640x480', 'ROI', [1 1 640 480], 'ReturnedColorSpace', 'rgb');
as my video input adapter.

You should check your image acquisition toolbox for video adapters available in your system. Then arrange the line according to it.


Description changed

Description Changed

description updated

Description Updated. Video Tutorial added.

MATLAB Release Compatibility
Created with R2012a
Compatible with any release
Platform Compatibility
Windows macOS Linux