[R] Aide pour comptage de voiture avec détection de pixels

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
cmoifred
Niveau 1
Niveau 1
Messages : 4
Enregistré le : jeu. 01 juil. 2010 11:38
Localisation : yvelines
Status : Hors ligne

[R] Aide pour comptage de voiture avec détection de pixels

#1

Message par cmoifred »

Bonjour
je désire créer un script pour compter les voiture a certains endroit précis de mon écran (voiture prise par camera) j'ai essayé de faire un pixelgetcolor mais trop précis pour ma recherche vu que les pixels ne sont pas toujours de la même couleur (le gris de la route change tout le temps a cause de la lumière et de la mauvaise caméra) j'ai testé aussi la fonction suivante:
-http://autoitscript.fr/forum/viewtopic.php?f=21&t=4433
avec _Color_GetNumber
mais je n'arrive pas à bien l'utiliser.
Ps: je désire un mousegetpos pour détecter l'emplacement du point en haut a gauche et en bas a droite du rectangle à détecter(Les voitures sont sures de passer a plus de 50% dedans).Et un autre pour la couleur(normalement gris mais sur certaines camera vert).Les camera sont en couleurs même sur les camera vertes.
J'ai fait un code pour compter en manuelle qui prend 3 position une seule suffit si c'est automatique.
► Afficher le texte
Je vous remercie infiniment si vous acceptez de m'aider
Modifié en dernier par cmoifred le sam. 03 juil. 2010 13:27, modifié 1 fois.
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..]Aide pour comptage de voiture avec détection de pixels

#2

Message par Iste »

Mon conseil :
Utilisez PixelChecksum() avec une tolérance minimal, puis stockez le resultat dans une variable, et recomencez.
De cette manière, le script pourra s'adapter a de petit changement mais détectera les gros mouvements.

Pour le mousegetpos(), ca devrait pas etre trop dur, je vous laisse chercher un peu ;)
Signez ici
Avatar du membre
cmoifred
Niveau 1
Niveau 1
Messages : 4
Enregistré le : jeu. 01 juil. 2010 11:38
Localisation : yvelines
Status : Hors ligne

Re: [..]Aide pour comptage de voiture avec détection de pixels

#3

Message par cmoifred »

Pour le mousegetpos je savais mais comme c'était une demande de script ;-)
pour ce que sa intéresse
un ptit exemple:
$var = mousegetpos()
$var[0];position de la souris en x
$var[1];position de la souris en y
Pour le pixelchecksum j'ai un peu de mal je vais faire des recherches plus approfondi
pour l'instant le compteur compte même quand il n'y a pas de voiture mais aussi j'ai fait que les mousegetpos et le pixelchecksum($poshautgauche[0],$poshautgauche[1],$posbasdroite[0],$posbasdroite[1])
je n'ai pas compris comment on change la tolérance je pense que c'est avec step mais je n'ai pas compris
http://www.autoitscript.com/autoit3/doc ... ecksum.htm
J'avais eu une idée mais sa marche pas
► Afficher le texte
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..]Aide pour comptage de voiture avec détection de pixels

#4

Message par Iste »

En effet, je pensai que PixelChecksum() prenait un param de tolérence, mais j'ai du confondre désolé.
Voici une fonction qui pourrait vous servir :

Code : Tout sélectionner

Func _PixelChecksum($left,$top,$right,$bottom)                  
    Local $total = 0
    For $i = 0 To $bottom - $top
        For $j = 0 To $right - $left
            $total += PixelGetColor($left + $j,$top + $j)
        Next
    Next
    Return $total
EndFunc
elle renvoi la somme des couleurs d'une zone, on va donc pouvoir gérer la tolérance nous meme ;)
Voila un petit exemple
► Afficher le texte
Pour le tester, changez la tolérance déclarée en global, et les coordonées bien sur.
Ce script devrait s'adapter a de petit changement (nuit qui tombe, problème de qualité d'image) mais détecter quand meme les gros changement.
Signez ici
Avatar du membre
cmoifred
Niveau 1
Niveau 1
Messages : 4
Enregistré le : jeu. 01 juil. 2010 11:38
Localisation : yvelines
Status : Hors ligne

Re: [..] Aide pour comptage de voiture avec détection de pixels

#5

Message par cmoifred »

Merci votre fonction est géniale.Mais ne marche pas dans mon cas... (les pixels bouge trop et si j'augmentes les voitures ne sont pas détecté j'ai trouvé 360000000 pendant 1min puis moins aprés).Je commence a désespérer ... Si j'ai bien compris votre script redétecte les pixels entre chaque voitures (donc la caméra est de trop mauvaise qualité)
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Aide pour comptage de voiture avec détection de pixels

#6

Message par Iste »

erf...
En effet, mon script fait une bête somme des valeur décimal des couleurs de chaque pixel toutes les 100ms, donc si la caméra a une image trop fluctuante, le réglage sera pas facile.

Il vous faudrait un algo plus poussé, si je pense a un je vous le signalerai.

Par contre, une idée, certain logiciel pour webcam on une détection de mouvements, je crois meme que VLC le fait (impossible de vérifier pour le moment)
Ces logiciel caractérisent les mouvement par des rectancle de couleur uniforme, souvent rouge.
Il suffirait de lancer un de ces logiciel, et de ne demander a autoit qu'a regarder chaque foi qu'il détecte un mouvement
Signez ici
Avatar du membre
cmoifred
Niveau 1
Niveau 1
Messages : 4
Enregistré le : jeu. 01 juil. 2010 11:38
Localisation : yvelines
Status : Hors ligne

Re: [..] Aide pour comptage de voiture avec détection de pixels

#7

Message par cmoifred »

J'avais plutôt pensé a utilisé un flou pour que les pixels reste les mêmes dans la positions que je recherche sinon les vidéo sont en .img et le logiciel pour les lire est intellex player donc je vais mettre en résolue.Et je vais recherchez un logiciel tout fait.
Répondre