Le Blog

  • : Le blog de Romain Dedenis
  • : Un blog relatif à la programmation web, vous trouverez ici des tutoriels sur différents langages tel que le flash, le php... Ainsi que différentes astuces et articles. Bonne visite :)
  • Contact

Contacts

viadeo-icone-5757-48.png linkedin.png

Liens Utiles

 

Documentation Flash as 3.0 :

Flash as 3.0

 

Documentation moteurs 3D Flashs :


Documentation Utilitaires 3D Flashs :

Et bien sûr, le fil RSS du Blog ! rss

1 mai 2010 6 01 /05 /mai /2010 12:41

dmtoolkit

 

Nous voici à notre première mise à jour de notre bibliothèque de détection de mouvements DMToolkit.

Télécharger la dernière version :     > DMToolkit (version du 01/05/2010) <

 

1/ La documentation est arrivée !

 

Une bibliothèque sans documentation, cela ne sert à rien mise à part de perdre du temps ;). C'est donc pour cela que je viens de mettre en ligne la documentation du DMToolkit à cette adresse : documentation DMToolkit.


2/ Les nouvelles fonctionnalités apportée par la mise à jour.

 

Je vous l'avais dit, le DMToolkit est une bibliothèque qui doit encore mûrir et se paufiner! C'est pour cela que certain algorythmes ont évolué depuis la première version et que de nouveaux outils sont apparus.

 

  • Le MultiDetector : classe permettant d'utiliser plusieurs détecteurs simultanément pour la détection de mouvements. Le principe est d'obtenir les zones où le mouvement est présent dans tous les détecteurs.
  • Le MultiAnalyzer : classe permettant d'utiliser plusieurs analyzers simultanément. Le but est de pouvoir détecter le mouvement en différent point de l'image.
  • Le ColorDetector : classe permettant d'effectuée une détection de couleur simple. Son algorythme doit encore être amélioré, mais il est déjà suffisemment fiable pour appaître dans cette version.

 

 

Voici pour une présentation rapide des nouvelles évolutions de la bibliothèque DMToolkit. Retrouvez très bientôt des exemples complet sur l'utilisation du DMToolkit.

 

 

Télécharger la dernière version :     > DMToolkit (version du 01/05/2010) <

 

 


  Pour rester informé,rss Abonnez-vous au fil RSS !



Cordialement, Romain Dedenis.
Partager cet article
Repost0
16 avril 2010 5 16 /04 /avril /2010 15:37

dmtoolkit

 

Avant toute chose, nous allons commencer par un peu de théorie et ainsi poser les bases du fonctionnement du DMToolkit. Ensuite, nous passerons à un exemple d'utilisation fonctionnel de la bibliothèque.

 

I/ un peu de théorie

 

Pas d'inquiètude, je ne vais pas m'attarder très longtemps sur ce point. Nous allons commencer par voir les différents outils que nous propose DMToolkit, puis je vous donnerais un bref shéma explicatif du fonctionnement de ce dernier.

 

Pour le moment, DMToolkit intègre 3 types d'outils qui sont :

  • Les Detectors

Les detectors sont les objets qui vont nous permettre de capter le mouvement. Pour le moment, deux sont intégrés au sein de DMToolkit. FrameByFrameDetector et FrameWithSourceDetector. Le premier correspond à l'analyse image par image pour capter le mouvement, et le second consiste a comparer les images avec une image source.

 

new FrameByFrameDetector(interval:int, debug:boolean);

new FrameWithSourceDetector(interval:int, debug:boolean);

 

interval : représente l'intervalle entre deux captures d'images.

Si aucun paramètre n'est passé, il est définit à 100 millisecondes.

debug : permet d'afficher les zones de mouvements.

Si aucun paramètre n'est passé, il est définit à false.

 

  • Les Analyzers

Le résultat de la capture des Detectors est ensuite passé aux Analyzers qui vont se charger de détecter si le mouvement est détecté dans une zone précise de l'image que nous définissont (exemple: emplacement d'un bouton qui sera actionné si le mouvement est détecté sur lui). Il en existe deux types pour le moment, le PointAnalyzer et le SquareAnalyzer.

 

new PointAnalyzer(callback:Function, point:Point);

callback : représente la fonction qui va être appelée si l'analyzer détecte un mouvement dans la zone spécifié.

Avec notre squelette, nous devons passer la fonction actions.

point : représente le point à tester pour détecter le mouvement (du type flash.geom.Point).

 

new SquareAnalyzer(callback:Function, rect:Rectangle, confidence:int);

callback : représente la fonction qui va être appelée si l'analyzer détecte un mouvement dans la zone spécifié.

Avec notre squelette, nous devons passer la fonction actions.

rect : représente la zone à tester pour détecter le mouvement (du type flash.geom.Rectangle).

confidence : représente le pourcentage de la zone qui doit être affecté par le mouvement pour effectuer le callback.

Si aucun paramètre ne lui est passé, la confidence est définie à 0.8 ( valeurs comprises entre 0 et 1).

 

  • Les Accelerators

Les Accelerators permettent de réduire le temps de calculs pour la détection du mouvement. Pour le moment un seul est intégré, il s'agit du SizeAccelerator qui réduit la taille de l'image réduisant ainsi le temps de calcul.

 

new SizeAccelerator(reduction:int);

reduction représente le taux de réduction de l'image source avant l'analyse des Analyzers (valeur comprises entre 1 et 100).

 

 

De façon schématique, voici le fonctionnement de DMToolkit :

schema

 

2/ Premier exemple de l'utilisation de DMToolkit

 

Pour se faire, nous allons réutiliser le squelette du premier tutoriel ( DMToolkit : Premiers pas... ).

Dans notre exemple, nous allons détecter si le mouvement est présent dans le coin gauche de notre image.

 

Code source :

package{
    import flash.display.*;
    import flash.geom.*;
  
    import DMToolkit.core.*;

    import DMToolkit.core.analyzers.*;

    import DMToolkit.core.detectors.*;

    import DMToolkit.core.accelerators.*;

  
    public class Main extends Sprite{
        private var dmt:DMToolkit;
      

        public function Main(){

            dmt = new DMToolkit(stage);

 

            // création de l'analyseur
            var analyzer = new ZoneAnalyzer(actions, new Rectangle(0,0,100,100));
            dmt.setAnalyzer(analyzer);
           
            // création du détecteur
            var detector = new FrameByFrameDetector(80, true);
            dmt.setDetector(detector);
           
            //création de l'accelerateur de détection
            var accelerator = new SizeAccelerator(1);
            dmt.setAccelerator(accelerator);
           
            //démarrage de la capture de mouvements
            dmt.start();

 

        }

      
        public function actions():void{

            trace("Mouvement détecté !");
        }
    }
}

 

 

Pour les explications, tout est décrit dans la partie théorie je n'y reviendrais donc pas. Juste une précision, ici l'Accelerator ne sert à rien puisqu'il est initialisé à 1, il est là juste pour vous montrer comment nous l'utilisons.

 

Nous voici arrivé à la fin de ce tutoriel sur DMToolkit. La prochaine fois, nous mettrons en application la théorie au travers d'une petite application.




Ce tutoriel vous a été utile? rss Abonnez-vous au fil RSS !



Cordialement, Romain Dedenis.
Partager cet article
Repost0
16 avril 2010 5 16 /04 /avril /2010 14:16

dmtoolkit

 

 I/ Installation du DMToolkit.

Une fois que vous aurez téléchargé la dernière version du DMToolkit ( DMToolkit : Bibliothèque de Détection de mouvements ), il ne vous restera plus qu'à l'extraire.

Ensuite, nous allons lier Flash à la bibliothèque DMToolkit une bonne fois pour toute, nous permettant ainsi de pouvoir l'utiliser sans avoir à se soucier de son emplacement.
Pour se faire :

  • lancer Adobe Flash.
  • dans le menu Modifier aller dans Préférences, une fenêtre s'ouvre.
  • dans Catégories, selectionner ActionScript puis cliquer sur Paramètres d'ActionScript 3.0...inst_papervision1-copie-1.jpg
  • Enfin, dans chemin source, cliquez sur le plus et ajouter le chemin vers le répertoire de DMToolkit. Généralement, placer le dans le répertoire d'installation de Flash, de manière à ne pas corrompre le chemin d'accès à la bibliothèque en la déplaçant par inadvertance.inst_papervision2.jpg


II/ Lier un fichier .fla et .as


Je vais un peu m'attarder pour ce premier tutoriel sur le linkage entre une classe et la scène pour que nous partions sur de bonnes bases dès le départ, ceci nous aideras à avoir la même architecture et évité ainsi d'éventuelles erreurs par la suite.

Dans un premier temps, créer un nouveau fichier "Fichier Flash (AS 3.0)" que vous nommerez dmtoolkit.fla par exemple ainsi qu'un fichier "Fichier ActionScript" que vous nommerez Main.as dans le même dossier que le fichier .fla (attention à bien respescter les minuscules/majuscules car Flash est sensible à la case).

Maintenant, passons à la liaison de nos fichiers fla et as :inst_papervision3.jpg
Dans le champs Classe, entrez Main correspondant à notre classe que nous souhaitons associer à notre document Flash (.fla). Ensuite, un message d'avertissement apparaît, n'en tenez pas compte, valider avec Ok.

III/ Réalisation de notre squelette DMToolkit.

Maintenant que nous partons sur les mêmes bases, nous pouvons passer à la réalisation de notre squelette DMToolkit que nous réutiliserons dans chacuns des prochains tutoriels.

Donc, dans un premier temps, je vais vous donner le squelette en entier, que vous devrez copier dans le fichier Main.as, je passerais aux explications par la suite. Je vous conseille tout de même avant de les lire, d'essayer de comprendre le fonctionnement du squelette par vous même, puis de conforter vos déductions avec les explications.

Code source du squelette :

package{
    //flash imports
    import flash.display.*;
    import flash.geom.*;
   
    //DMToolkit imports
    import DMToolkit.core.*;
   
    public class Main extends Sprite{
        private var dmt:DMToolkit;
      

        public function Main(){

            //voir explication 1

            dmt = new DMToolkit(stage, actions);
        }

        //voir explication 2
        public function actions():void{

            
        }
    }
}


Explication 1:
Dans cette partie du code, nous initialisons la bibliothèque DMToolkit :

 

new DMToolkit(container, callback);

  • container : il est du type DisplayObjectContainer, généralement passer lui stage.
  • callback : représente une fonction qui sera appelée si le mouvement est détecté selon les critères que nous aurons définis (nous aborderons celà dans un prochain tutoriel).


Explication 2:
Ici, actions est la fonction de callback que nous passons au DMToolkit, elle contient les actions à effectuer si le mouvement est détecté et correspond aux critères définis.

 

 

Voici pour ce premier tutoriel qui visait à installer et créer notre squelette. Ceci est un squelette, il n'affiche rien du tout, ni ne détecte de mouvements pour le moment ;).

Rendez-vous très prochainement pour le prochain tutoriel( DMToolkit : Première détection ) où cette fois-ci, nous allons commencer véritablement à détecter des mouvements et étudier plus en profondeur le DMToolkit.



Ce tutoriel vous a été utile? rss Abonnez-vous au fil RSS !



Cordialement, Romain Dedenis.
Partager cet article
Repost0
16 avril 2010 5 16 /04 /avril /2010 13:19

Comme je l'ai abordé avec certains d'entre vous, et suite à quelques demandes, j'ai décidé de me lancer dans le développement d'une bibliothèque de détections de mouvements qui soit la plus simple possible à utiliser et apportant des performances d'une qualité profesionnelle.

 

dmtoolkit

 

Vous retrouverez cette bibliothèque sous le nom de DMToolkit (Detect Motion Toolkit), visant à aider le plus grand nombre dans l'intégration de cette technologie au sein de leur application Flash AS 3.0.

 

Pour sa première version, le DMToolkit intégre déjà bon nombre de fonctionnalités. Cependant, c'est un projet qui demande à murir, à se paufiner et à s'enrichir avec le temps (donc surtout, n'hésitez pas à me faire part des éventuels bugs rencontrés ou améliorations qui vous serait utiles! ).

 

Sans plus tarder, rendez - vous ici ( DMToolkit : Bibliothèque de Détection de mouvements ) pour en savoir plus!

 

Accèder au premier tutoriel ( DMToolkit : Premiers pas... ).

 

 


  Restez informé!rss Abonnez-vous au fil RSS !



Cordialement, Romain Dedenis.
Partager cet article
Repost0