Comparer une portion de l'écran à une image [Résolu]

sousoulebarbu 107 Messages postés mercredi 27 juillet 2005Date d'inscription 11 janvier 2009 Dernière intervention - 6 juin 2007 à 21:07 - Dernière réponse : sousoulebarbu 107 Messages postés mercredi 27 juillet 2005Date d'inscription 11 janvier 2009 Dernière intervention
- 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
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
sousoulebarbu 107 Messages postés mercredi 27 juillet 2005Date d'inscription 11 janvier 2009 Dernière intervention - 7 juin 2007 à 23:33
3
Merci
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.

Merci sousoulebarbu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de sousoulebarbu
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 6 juin 2007 à 22:26
0
Merci
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...
Commenter la réponse de jmfmarques
Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention - 7 juin 2007 à 03:22
0
Merci
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
Commenter la réponse de Gobillot
sousoulebarbu 107 Messages postés mercredi 27 juillet 2005Date d'inscription 11 janvier 2009 Dernière intervention - 7 juin 2007 à 08:27
0
Merci
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?
Commenter la réponse de sousoulebarbu
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 7 juin 2007 à 08:43
0
Merci
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 !
Commenter la réponse de jmfmarques
sousoulebarbu 107 Messages postés mercredi 27 juillet 2005Date d'inscription 11 janvier 2009 Dernière intervention - 7 juin 2007 à 08:51
0
Merci
D'accord, mais comment je fais pour transformer une capture d'écran en tableau de pixel?
Commenter la réponse de sousoulebarbu
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 7 juin 2007 à 09:03
0
Merci
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.
Commenter la réponse de jmfmarques
sousoulebarbu 107 Messages postés mercredi 27 juillet 2005Date d'inscription 11 janvier 2009 Dernière intervention - 7 juin 2007 à 09:18
0
Merci
"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...
Commenter la réponse de sousoulebarbu
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 7 juin 2007 à 09:23
0
Merci
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 ?
Commenter la réponse de jmfmarques
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 7 juin 2007 à 09:27
0
Merci
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 !
Commenter la réponse de jmfmarques
sousoulebarbu 107 Messages postés mercredi 27 juillet 2005Date d'inscription 11 janvier 2009 Dernière intervention - 7 juin 2007 à 20:49
0
Merci
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...
Commenter la réponse de sousoulebarbu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.