How to remove time lag and multiple centroid in this code?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Rohit Dixit
el 26 de Sept. de 2014
Comentada: Image Analyst
el 27 de Sept. de 2014
The cursor does not follows red color properly and it detects white and various other color also. currently i am doing virtual mouse using color detection. this is code please help.
clear all
close all
clc
import java.awt.Robot
m=Robot;
v=videoinput('winvideo',1,'YUY2_640x480');
set(v,'ReturnedColorSpace','YCbCr');
v.FramesPerTrigger=inf;
v.FrameGrabInterval=1;
pause(1)
while (v.FramesAcquired<=35)
i=getsnapshot(v);
% i=imresize(i,2);
% imtool(im_resized)
first_comp=i(:,:,1);
% imtool(first_comp)
rgb_2_gray=rgb2gray(i);
% imtool(rgb_2_gray)
d=first_comp-rgb_2_gray;
% imtool(d)
b=im2bw(d,.1);
bw=bwareaopen(b,500);
imshow(bw);
hold on;
% end;
% % bw=bwlabel(bw,8);
% % imtool(bw)
p=regionprops(bw,'centroid');
for z=1:length(p)
a=p(z).Centroid;
plot(a(1),a(2),'r*');
m.mouseMove(a(1),a(2));
end;
end;
1 comentario
Matt J
el 26 de Sept. de 2014
For your reference, your code is now much more readable because I applied this formatting button to it,
Respuesta aceptada
Image Analyst
el 26 de Sept. de 2014
It's just not a very robust color segmentation algorithm. You might be better off going to hsv color space. See my File Exchange. However one of the methods I use there does find red objects in RGB color space. http://www.mathworks.com/matlabcentral/fileexchange/26420-simplecolordetection
Or you might check out this: http://www.mathworks.com/matlabcentral/fileexchange/28757-tracking-red-color-objects-using-matlab though I've never used it.
2 comentarios
Image Analyst
el 27 de Sept. de 2014
I just looked at it. It's not any more robust than yours was - in fact it's pretty much the same algorithm. Well, whatever, if it works in your specific situation, then fine.
Más respuestas (1)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!