Red tracking object- need to store co-ordinates of red object?

1 view (last 30 days)
Hi ALL, I have been working on red object and tracking program using live webcam. I was able to detect red object through webcam screen. But, i was not able to store the co-ordinate values. I need to store the co-ordinates value as per project requirement. Can anyone help me out in this regard? Thanks in advance. Following is the program for reference; a = imaqhwinfo;
% Capture the video frames using the videoinput function % You have to replace the resolution & your installed adaptor name. vid = videoinput('winvideo',1);
% Set the properties of the video object set(vid, 'FramesPerTrigger', Inf); set(vid, 'ReturnedColorspace', 'rgb') vid.FrameGrabInterval = 5;
%start the video aquisition here start(vid)
%counter=1;
% Set a loop that stop after 100 frames of aquisition while(vid.FramesAcquired<=200)
% Get the snapshot of the current frame
data = getsnapshot(vid);
% Now to track red objects in real time
% we have to subtract the red component
% from the grayscale image to extract the red components in the image.
diff_im = imsubtract(data(:,:,1), rgb2gray(data));
%Use a median filter to filter out noise
diff_im = medfilt2(diff_im, [3 3]);
% Convert the resulting grayscale image into a binary image.
diff_im = im2bw(diff_im,0.18);
% Remove all those pixels less than 300px
diff_im = bwareaopen(diff_im,300);
% Label all the connected components in the image.
bw = bwlabel(diff_im, 8);
% Here we do the image blob analysis.
% We get a set of properties for each labeled region.
stats = regionprops(bw, 'BoundingBox', 'Centroid');
% Display the image
imshow(data)
hold on
%This is a loop to bound the red objects in a rectangular box.
for object = 1:length(stats)
counter=counter+1;
bb = stats(object).BoundingBox;
bc = stats(object).Centroid;
rectangle('Position',bb,'EdgeColor','r','LineWidth',2)
plot(bc(1),bc(2), '-m+')
a=text(bc(1)+15,bc(2), strcat('X: ', num2str(round(bc(1))), ' Y: ', num2str(round(bc(2)))));
%b=stract('X',strcat('X: ', num2str(round(bc(1)))), ' Y: ', num2str(round(bc(2))));
%A(counter)=a;
set(a, 'FontName', 'Arial', 'FontWeight', 'bold', 'FontSize', 12, 'Color', 'yellow');
end
hold off
end
% Both the loops end here.
% Stop the video aquisition. stop(vid);
% Flush all the image data stored in the memory buffer. flushdata(vid);
% Clear all variables clear all sprintf('%s','That was all about Image tracking, Guess that was pretty easy :) ')

Answers (1)

pourya
pourya on 23 May 2014
Hello . I am an Iranian student. I've run the program detection red color. But, I do not know how to take pictures inside the box containing the red. Can you help me? Thank you.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!