Reconocimiento de mano
Publicado por Pavel (2 intervenciones) el 17/06/2010 00:15:30
Hola a todos, voy a empezar con que no conozco muy bien el matlab y si necesito un poco de ayuda, tengo que hacer un programa en matlab que encuadra una mano en un cadrado y me dice cuandos dedos estoy ensenando, la ideea es muy basica paro implementarlo en mi caso es mas dificil, teoricamente tengo hecho lo de cuadrar la mano utilizando el color de la piel, aunque no me funciona, lo de cuantos dedos tengo pensaba hacerlo segun la area del cuadrado, pero como no funciona lo de encuadrar y no se con que funcion se pide la area del cuadrado no puedo sequir adelante, tambien todo tiene que hacerse con una webcam en tiempo real, anado el codigo que tengo hecho y repito otra vez que el matlab es todavia un misterio para mi y que cada ayuda, consejo y incluso critica esta bienvenida, gracias otra vez!
El codigo hsta ahora:
vid = videoinput('winvideo', 2, 'YUY2_640x480'); //por alguna razon mi webcam no funciona en RGB
preview(vid);
Rmin = 190;Rmax = 260;Gmin = 180;Gmax = 260;Bmax = 210;Bmin = 130;
set(vid,'TriggerRepeat',Inf);
start(vid);
while true
imagen = getdata(vid, 1);
imagenR = imagen (:,:,1);
imagenG = imagen (:,:,2);
imagenB = imagen (:,:,3);
maskR = imagenR > Rmin & imagenR < Rmax;
maskG = imagenG > Gmin & imagenG < Gmax;
maskB = imagenB > Bmin & imagenB < Bmax;
mask = maskR & maskG & maskB;
L = bwlabel(mask);
props_mask = regionprops(L,'Area','BoundingBox');
[maxarea, indmax] = max([props_mask.Area]);
coords_maxrect = props_mask(indmax).BoundingBox;
h = rectangle('Position', coords_maxrect);
set(h, 'EdgeColor', 'r');
end
El codigo hsta ahora:
vid = videoinput('winvideo', 2, 'YUY2_640x480'); //por alguna razon mi webcam no funciona en RGB
preview(vid);
Rmin = 190;Rmax = 260;Gmin = 180;Gmax = 260;Bmax = 210;Bmin = 130;
set(vid,'TriggerRepeat',Inf);
start(vid);
while true
imagen = getdata(vid, 1);
imagenR = imagen (:,:,1);
imagenG = imagen (:,:,2);
imagenB = imagen (:,:,3);
maskR = imagenR > Rmin & imagenR < Rmax;
maskG = imagenG > Gmin & imagenG < Gmax;
maskB = imagenB > Bmin & imagenB < Bmax;
mask = maskR & maskG & maskB;
L = bwlabel(mask);
props_mask = regionprops(L,'Area','BoundingBox');
[maxarea, indmax] = max([props_mask.Area]);
coords_maxrect = props_mask(indmax).BoundingBox;
h = rectangle('Position', coords_maxrect);
set(h, 'EdgeColor', 'r');
end
Valora esta pregunta


0