Comparer une portion de l'écran à une image

Résolu
sousoulebarbu Messages postés 101 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 11 janvier 2009 - 6 juin 2007 à 21:07
sousoulebarbu Messages postés 101 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 11 janvier 2009 - 7 juin 2007 à 23:33
Bonjour à tous.
J'aurais aimé créer un programme qui puisse comparer une partie de ce qui est affiché à l'écran à une image que j'ai déja. Pour être plus clair, j'aimerais que le programme me dise si ce qui se trouve sur mon écran dans le rectangle de coordonnée (x,y,x',y') est bien identique à une image.
Pour faire  une copie d'écran et même découper cette dernière pour garder juste la partie qui m'interresse, je devrais m'en sortir (je m'inspire de cette source), mais je ne sais pas du tout comment comparer deux images.
Quelqu'un pourrait-il m'aider svp.
Merci d'avance.
Bonne soirée

11 réponses

sousoulebarbu Messages postés 101 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 11 janvier 2009
7 juin 2007 à 23:33
Bon bin je me suis débrouillé tout seul.J'explique un peu plus comment j'ai fait au cas où certaines personnes s'interresse à cela...
Donc tout d'abord je prend une "photo" de la partie de l'écran qui m'intéresse grace à la fonction "CopieEcran" de cette source, puis une boucle pour enregistrer la partie de l'écran dans un tableau. Pour détecter la couleur, j'ai donc utiliser bitmap.GetPixel.

Puis une deuxième capture d'écran au moment voulu et ensuite une deuxième boucle pour comparer les valeurs des pixels de cette dernière au tableau.
3
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
6 juin 2007 à 22:26
Bonsoir,
un de plus, alors ...
Dis-nous donc à partir de quand tu considères qu'il n'y a plus d'"identité" : 1 pixel; ? 2 ? 10 ? 100 ? 1000 ? 10000 ?  100000 ?
Plus ?
Dis-nous également à partir de quelles coordonnées tu fais cette "vérification d'identité "... juste pour voir...
et dis-nous enfin si les 2 premières questions ci-dessus t'ont permis de prendre la mesure de ce que tu veux faire et si, cette mesure étant maintenant prise en moins mauvaise connaissa,ce de cause, tu penses que la chose est réalisable sans faire "ramer à mort" ton PC ... Tu peux profiter de cette réflexion pour t'interroger sur ce tout petit point là : sais-tu déjà (as-tu au moins cherché à le faire) repéré, par exemple, s'il existe dans l'image image1 in simple petit rond de surgace et de couleur identiques à celles d'un petit rond d'une image image2 (et, pour te faciliter les choses) quel que soient les endroits où se trouvent ces deux petits ronds sur chacune des 2 images ?
Je te conseille de commencer par cette première "toute petite" étape et de décider (si succès sans "ramer") de la suite à donner à ton projet
J'aimerais enfin connaître ton degré précis de connaissances en matière de traitement des images ...
Dis-nous...
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
7 juin 2007 à 03:22
Salut,
en clair, ce qui veut dire jmfmarques c'est que tu peux abandonner le project
tout ce qu'on peut faire c'est de vérifier que 2 images soient parfaitement identiques, et encore faut-il qu'elle doit codée de la même façon, et même en enlevant les exif (pour jpg), elles peuvent être codée différemment.
il faudrait faire plusieurs boucles imbriquées et des statistiques invraisemblable sur le rapprochement des couleurs
change le nombre de couleurs d'un bmp et regarde par programme si elles sont identiques.
l'oeil pourra déterminer l'identicité mais par programme c'est une toute autre histoire.
bon courage !

Daniel
0
sousoulebarbu Messages postés 101 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 11 janvier 2009
7 juin 2007 à 08:27
Mon but n'est pas de comparer deux images et de voir leur ressemblance, mais de comparer un même endroit de l'écran à deux moment différents. Il ne s'agit donc pas de faire du traitement d'image, mais de trouver une méthode pour transformer une partie de ce qui est visible à l'écran en tableau de 20x20pixels. Je ne pense donc pas que comparer (j'entend par là regarder s'il sont exactement identiques ou pas)deux tableau de 20x20 fasse ramer mon pc...
Donc, d'après ce qu'à dit [auteurdetail.aspx?ID=278023 Gobillot], ça doit être possible non?
0

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

Posez votre question
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
7 juin 2007 à 08:43
Ben là oui, alors :
si tu connais d'avance les coordonnées du point de l'angle supérieur gauche et de l'angle inférieur droit du rectangle dont tu veux déterminer s'il a subi une modification, c'est parfaitement réalisable avec :
 la mise en mémoire systématique du tableau des pixels de départ et la comparaison avec le nouveau tableau des pixels au moment de l'"examen".
Tu peux même tout simplement :
1) dresser le 1er tableau pour mémoriser les valeurs de départ
2) à l'examen : parcourir le rectangle en double boucle et comparer la valeur de chaque pixel à la valeur de mêmes indices mémorisée dans le tableau

Si, de surcroît, ton rectangle à examiner n'occupe qu'une surface de 20 pixels * 20 pixels, ce sera même très rapide !
0
sousoulebarbu Messages postés 101 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 11 janvier 2009
7 juin 2007 à 08:51
D'accord, mais comment je fais pour transformer une capture d'écran en tableau de pixel?
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
7 juin 2007 à 09:03
Ah, nous y- voilà ! Apparait le mot capture d'écran, maintenant ...


Ta capture d'écran est une image comme une autre et donc "parcourable de gauche à droite et de haut en bas à partir d'un point de coordonnées x0,y0 et jusqu'au point de coordonnées x1,y1, comme tu le ferais pour n'importe quelle image, capture d'écran ou non.

la largeur à parcourir est connue : L = x1-x0
la hauteur l'est également : H = Y1-Y

Un tableau toto, donc, dimentionné avec L et H, à alimenter par une double boucle, donc, du genre :

For I = 1 to L
  For J = 1 to H
     'relevé de la valeur du pixel en I,J et inscription de cette valeur dans toto(I,J)
  Next J
Next I

Je suppose (bien sûr) que tu sais déjà comment on relève la valeur (donc la couleur) d'un pixel. Si tel n'était pas le cas, tu aurais en effet sans aucun doute commencé par cette question de base.
0
sousoulebarbu Messages postés 101 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 11 janvier 2009
7 juin 2007 à 09:18
"Je suppose (bien sûr) que tu sais déjà comment on relève la valeur
(donc la couleur) d'un pixel. Si tel n'était pas le cas, tu aurais en
effet sans aucun doute commencé par cette question de base."
Bin justement, c'est mon problème...
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
7 juin 2007 à 09:23
Il y a mon petit doigt (ce galopin là) qui vient de me poser une question, que je te transmets donc :
"pourquoi diable  sousoulebarbu fait-il une capture d'écran ? On dirait que l'image dont il s'agit n'est pas dans son application ! Si c'était le cas : au lieu de perdre son temps à faire une capture d'écran, il ferai mieux d'aller directement sur son écran relever la couleur des pixels concernés et constituer son tableau. Mais au fait : quel est le but de tout ce bastringue ? Serait-il en train de passer par des acrobaties pour traiter ce qu'il pourrait traiter sans ce "sport" ?"

Mais mon petit doigt (comme je te l'ai dit) est un galopin ... alors ...faut-il écouter ce qu'il raconte ?
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
7 juin 2007 à 09:27
Alors là  sousoulebarbu,

C'était la raison, dès mon premier message, de cette phrase :
"J'aimerais enfin connaître ton degré précis de connaissances en matière de traitement des images ..."

Tu vas me faire le plaisir d'abandonner cette discussion et d'ouvrir celle qui convient !
Avant de parler de dresser un tableau des valeurs des pixels, on apprend au moins comment on relève un seul pixel !
0
sousoulebarbu Messages postés 101 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 11 janvier 2009
7 juin 2007 à 20:49
Et si on apprenait tout en même temps, ça serait pas plus simple???
Maintenant j'aimerais bien que TU aies un tout petit peu de respect et que TU évites de me donner des ordres!
Et pour ton information, il me parait évident que si je savais relever un pixel, je sais quand même faire des boucles for!!!Et excuse moi, mais si je demande à des personnes du forum, je ne pense pas que tout le monde connaisse ça. Même si je sais programmer, je n'ai jamais eu besoin de "traiter" des images, donc j'espère que je vais éviter la peine de mort pour cela...
0
Rejoignez-nous