Détection des coordonnées d'un mouvement partir d'une webcam

cs_AcarnanDragoon Messages postés 55 Date d'inscription lundi 9 février 2009 Statut Membre Dernière intervention 3 octobre 2012 - 9 nov. 2009 à 12:19
cs_AcarnanDragoon Messages postés 55 Date d'inscription lundi 9 février 2009 Statut Membre Dernière intervention 3 octobre 2012 - 13 nov. 2009 à 11:47
AcarnanDragoon

2 msg
3 msg CS

Bonjour à tous,

Voila je cherche à obtenir les coordonnées d'un mouvement filmé à partir d'un webcam en Flash. Pour, par exemple, placé des boutons sur la scène et que les personne puissent les activés en bougeant devant leur web cam.

Le code suivant me permet de détecter la valeur du mouvement, me l'indique dans une progressBar, et avec un numericStepper on peut modifier la sensibilité de la caméra :

Code ActionScript :

var my_cam:Camera = Camera.get();
var my_video:Video;
my_video.attachVideo(my_cam);


// configure the ProgressBar component instance
var motion_pb:mx.controls.ProgressBar;
motion_pb.mode = "manual";
motion_pb.label = "Motion: %3%%";

var motionLevel_lbl:mx.controls.Label;
// configure the NumericStepper component instance
var motionLevel_nstep:mx.controls.NumericStepper;
motionLevel_nstep.minimum = 0;
motionLevel_nstep.maximum = 100;
motionLevel_nstep.stepSize = 5;
motionLevel_nstep.value = my_cam.motionLevel;

// Continuously update the progress of the ProgressBar component instance to the activityLevel
// of the current Camera instance, which is defined in my_cam
this.onEnterFrame = function() {
motion_pb.setProgress(my_cam.activityLevel, 100);
};

// When the level of activity goes above or below the number defined in Camera.motionLevel,
// trigger the onActivity event handler.
my_cam.onActivity = function(isActive:Boolean) {
// If isActive equals true, set the themeColor variable to "haloGreen".
// Otherwise set the themeColor to "haloOrange".
var themeColor:String = (isActive) ? "haloGreen" : "haloOrange";
motion_pb.setStyle("themeColor", themeColor);
};

function changeMotionLevel() {
// Set the motionLevel property for my_cam Camera instance to the value of the NumericStepper
// component instance. Maintain the current motionTimeOut value of the my_cam Camera instance.
my_cam.setMotionLevel(motionLevel_nstep.value, my_cam.motionTimeOut);
}
motionLevel_nstep.addEventListener("change", changeMotionLevel);



Auriez vous une idée ? voir même une solution ?

Merci dans tout les cas et bonne journée !

10 réponses

gremlins7 Messages postés 380 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 28 décembre 2009
9 nov. 2009 à 12:25
Quel est la question précisément ?
0
cs_AcarnanDragoon Messages postés 55 Date d'inscription lundi 9 février 2009 Statut Membre Dernière intervention 3 octobre 2012
9 nov. 2009 à 12:31
La question est :

Comment puis-je détecter qu'il y a un mouvement à une position X*Y sur l'image que renvoi ma caméra ?
0
gremlins7 Messages postés 380 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 28 décembre 2009
9 nov. 2009 à 12:44
Te rends tu compte à quel problème épineux tu t'attaques ? Si tu est seul sur ton projet, je pense que tu peux rapidement en avoir pour quelques mois (voire un an) avant que tu puisse détecter quoi que ce soit...
Je veux pas te décourager et je ne sais pas s'il existe des codes tout fait, mais une chose est sur : un algorithme de détection de mouvement efficace c'est pas simple !!! Renseigne toi sur l'existant, la détection de contours (sobel ou la transformée de hough) les méthodes de sous-traction à l'arrière plan, les chaines de markov : modélisation des interactions spatio-temporelles par un champ de Markov faisant intervenir trois images successives...
Autre problématique : ce genre d'algo nécessite une puissance de calcul énorme et sont généralement implantés dans des système à processeur dédiés comme les DSP (digital signal processor), donc je ne suis pas sur qu'au finish même si tu arrive à implanter ces algos que tu puisse faire une détection temps-reel.
A+
0
cs_AcarnanDragoon Messages postés 55 Date d'inscription lundi 9 février 2009 Statut Membre Dernière intervention 3 octobre 2012
9 nov. 2009 à 12:48
J'ai vu des animations flash capable de dessiner des effets de flou ou de lumière en fonction du mouvement de la personne devan,t la webcam, il semblerait qu'il es dessiné un damier en superposition de la vidéo afin de détecter les mouvements. Je vais chercher dans ce sens mais merci quand même ^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gremlins7 Messages postés 380 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 28 décembre 2009
9 nov. 2009 à 12:54
Oui donc c'est une méthode de soustraction à l'arrière plan, en gros : tu compare l'image de la webcam avec l'arrière plan.
Tiens nous au courant et bon courage.
0
cs_AcarnanDragoon Messages postés 55 Date d'inscription lundi 9 février 2009 Statut Membre Dernière intervention 3 octobre 2012
9 nov. 2009 à 14:14
Justement auriez vous des pistes ou des exemples de code permettant de faire ça ? voir même un tuto ? parce que mes recherches ne sont guères fructueuse à l'heure actuelle...

Merci en tout cas et bonne journée !!
0
gremlins7 Messages postés 380 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 28 décembre 2009
9 nov. 2009 à 14:53
Ben j'ai pas tellement de tutos sur le sujet, le mieux c'est que tu fasse une recherche avec les bons mots clés !!! Mais c'est le genre de cours que tu doit pouvoir trouver dans une section de licence info.
0
cs_bali_balo Messages postés 1378 Date d'inscription samedi 9 octobre 2004 Statut Membre Dernière intervention 1 novembre 2010 1
13 nov. 2009 à 10:44
Voilà un bon tuto : attention les yeux :D
http://disturbing-strangeness.com/?p=123


bali_balo....=]
0
gremlins7 Messages postés 380 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 28 décembre 2009
13 nov. 2009 à 11:38
Merci bali_balo pour le tuto
0
cs_AcarnanDragoon Messages postés 55 Date d'inscription lundi 9 février 2009 Statut Membre Dernière intervention 3 octobre 2012
13 nov. 2009 à 11:47
Merci bien je vais étudier ça de près ^^
0
Rejoignez-nous