Bonsoir,
Pour résoudre le problème des parasites indésirables qui apparaissaient lors de la détection, la démarche est simple : Au plus petite sera la zone où il faut détecter la couleur du capteur, au moins je risque d'englober des pixels indésirables.
Pour cela je vais d'abord déterminer si il y a un mouvement et si mouvement il y a déterminer par le même procédé de THRESHOLD le rectangle d'activité qui délimitera une zone ou il faudra détecter la couleur.
ca me permettra d'alléger le nombre de pixels à analyser, pour autant que la détection de mouvement ne soit pas trop gourmande par rapport à une détection directe de la couleur.
Voici un petit exemple de la détection de mouvement, le code source de l'application n'a pas beaucoup changé. Le principal ajout est l'utilisation de la méthode compare() de la classe BITMAPDATA.
La méthode compare me fournit un bitmapdata contenant la différence de chaque canal de couleur pour chaque pixel entre 2 images.
En résumé, si y a un mouvement, la différence entre 2 images successives, me donnera du noir là ou il n'y a pas de mouvement et du blanc là ou il y en aura apres avoir désaturé le résultat obtenu. Assez parlé, il sera plus simple d'imaginer ce que cela me permet en le testant.
Dans cette exemple, pas besoin de motif de couleur, il ne s'agit que de la détection de mouvment. Pour obtenir un meilleur résultat n'oubliez pas de jouer avec le blur et la saturation. saturation en dessous de 60% conseillé. blur au moins 50% conseillé.
NB: Attendez quelques secondes que l'écran de droite soit totalement noir pour faire un mouvement. Avant cela, la zone rectangulaire ne correspond pas au tracking du mouvement.
Denis P.