[..] Pixels images identiques
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[..] Pixels images identiques
Bonsoir à tous.
J'aurais besoin de votre aide pour créer un petit logiciel qui m'aiderait bien ^^
Je voudrais en fait que ce logiciel ouvre une image, enregistre dans un tableau la couleur de chacun de ses pixels, ferme l'image. Ensuite il ouvrirait une deuxième image, ferait la même manipulation, en ouvrirait une troisième, quatrième, cinquième, enfin le nombre d'image sélectionnée. Il comparerait les pixels de toutes les images et me donneraient les pixels qui sont identiques entre ces images.
Pour chaque image, il y aurait un tableau de pixels.
J'espère que ce n'est pas trop dur à réaliser ^^
Merci d'avance
J'aurais besoin de votre aide pour créer un petit logiciel qui m'aiderait bien ^^
Je voudrais en fait que ce logiciel ouvre une image, enregistre dans un tableau la couleur de chacun de ses pixels, ferme l'image. Ensuite il ouvrirait une deuxième image, ferait la même manipulation, en ouvrirait une troisième, quatrième, cinquième, enfin le nombre d'image sélectionnée. Il comparerait les pixels de toutes les images et me donneraient les pixels qui sont identiques entre ces images.
Pour chaque image, il y aurait un tableau de pixels.
J'espère que ce n'est pas trop dur à réaliser ^^
Merci d'avance
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Pixels images identiques
Si vos images ont bien la même dimension, alors voici ce que je ferais :
- Combien d'image = $CombienDimage
- Taille des images = $X et $Y
- Créer un tableau 2D avec pour colonne $CombienDimage et pour ligne $X*$Y (nombre de pixel)
- Créer un boucle de lecture de chaque pixel pour la première image.
- Utiliser PixelGetColor et stocker la valeur dans le tableau correspondant ainsi que les coordonnées du pixel.
- Re-faire la boucle autant de fois qu'il y à $CombienDimage
- Filtrer le tableau en lisant ligne par ligne les valeurs obtenues.
- Si l'une des valeur est différente, alors supprimer la ligne ou si les valeurs sont identiques alors stocker dans un autre tableau le résultat.
Bon code.
- Combien d'image = $CombienDimage
- Taille des images = $X et $Y
- Créer un tableau 2D avec pour colonne $CombienDimage et pour ligne $X*$Y (nombre de pixel)
- Créer un boucle de lecture de chaque pixel pour la première image.
- Utiliser PixelGetColor et stocker la valeur dans le tableau correspondant ainsi que les coordonnées du pixel.
- Re-faire la boucle autant de fois qu'il y à $CombienDimage
- Filtrer le tableau en lisant ligne par ligne les valeurs obtenues.
- Si l'une des valeur est différente, alors supprimer la ligne ou si les valeurs sont identiques alors stocker dans un autre tableau le résultat.
Bon code.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [..] Pixels images identiques
Ok Super Tlem !
Il me manque une seule chose c'est quelle fonction utilisée pour ouvrir une image?
Merci encore je vais pouvoir bien avancer =)
Il me manque une seule chose c'est quelle fonction utilisée pour ouvrir une image?
Merci encore je vais pouvoir bien avancer =)
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Pixels images identiques
Je n'ai pas vraiment cherché, mais je pense qu'il est possible de faire ces opérations sans afficher l'image.
Dans les fonctions _WinAPI_xxx il y a des fonctions du type _WinAPI_LoadBitmap.
Il me semble qu'un sujet du forum traitait ce genre de pratique (recherche de pixels sans afficher l'image). Vous devriez consulter l'historique du forum. Peut être y trouverez-vous ce que vous cherchez.
Dans les fonctions _WinAPI_xxx il y a des fonctions du type _WinAPI_LoadBitmap.
Il me semble qu'un sujet du forum traitait ce genre de pratique (recherche de pixels sans afficher l'image). Vous devriez consulter l'historique du forum. Peut être y trouverez-vous ce que vous cherchez.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
- jbnh
- Niveau 11

- Messages : 1932
- Enregistré le : ven. 02 mai 2008 14:54
- Localisation : Bruxelles
- Status : Hors ligne
Re: [..] Pixels images identiques
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !
Merci
Merci
Re: [..] Pixels images identiques
Salut John !
Je n'ai pas très bien compris la fonction de ton petit script :s
Il n'y aurais pas un petit moyen pour accélérer la comparaison entre mes 2 images ? car il me faut actuellement 6heures pour comparer 2 images de 500x500.
Voici mon tableau en 2D :
Je n'ai pas très bien compris la fonction de ton petit script :s
Il n'y aurais pas un petit moyen pour accélérer la comparaison entre mes 2 images ? car il me faut actuellement 6heures pour comparer 2 images de 500x500.
Voici mon tableau en 2D :
Code : Tout sélectionner
Global $comp[$nmbre+1][$X*$Y+1]- SrBelial
- Niveau 7

- Messages : 335
- Enregistré le : jeu. 22 juil. 2010 11:29
- Localisation : 81 et 31
- Status : Hors ligne
Re: [..] Pixels images identiques
500 * 500 = 250 000
pas excessif comme nombre de pixels ... cependant tout dépend de la complexité de la boucle de parcours des pixels ...
plusieurs boucles imbriquées peut être ? ou bien de grosses opération mémoire répétées ? ou quelque chose d'autre qui augmente significativement la complexité ?
pas excessif comme nombre de pixels ... cependant tout dépend de la complexité de la boucle de parcours des pixels ...
plusieurs boucles imbriquées peut être ? ou bien de grosses opération mémoire répétées ? ou quelque chose d'autre qui augmente significativement la complexité ?
.-SrB-. The One
- NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
- OUI ! AutoIt est un langage à part entière !
- Dans SciTE sélectionnez 1 mot puis F1
- Don't want english doc ?? go to documentation française !! >>ICI<<
Re: [..] Pixels images identiques
Tu peux montrer comment tu comparerais les pixels stp
Car je crois que je suis parti sur de mauvaises bases ^^
Car je crois que je suis parti sur de mauvaises bases ^^
- SrBelial
- Niveau 7

- Messages : 335
- Enregistré le : jeu. 22 juil. 2010 11:29
- Localisation : 81 et 31
- Status : Hors ligne
Re: [..] Pixels images identiques
sans écrire de code voici un algo qui je pense ne serait pas trop gourmand :
j'en vois déjà s'exclamer : ohlala mais c'est pas du code !!! sépabiennnn .....
^__^
ce à quoi je réponds : je m'excuse, je n'ai pas trop le temps de le coder moi-même
je réponds à la question demandée par un algorithme simple, à transcrire en autoit (là le langage c'est une sorte de variante d'exalgo que je reprends du fin fond de ma mémoire ...)
Code : Tout sélectionner
entier nbimages = x
tableau images[nbImages][250000]
pour i allant de 0 à (250000-1) faire
pixel = images[0][i]
pour j allant de 1 à nbimages-1 faire
si images[j][i] <> pixel alors
// traitement cas ou pixel différent dans une des images, sortie de la seconde boucle, retour dans la
// première avec i qui s'incrémente, on exécute pas la fin de la première boucle, on repart au début
// (utilisation d'un booléen éventuellement pour dire qu'on est pas identique)
finsi
suivant
// traitement cas ou pixel identique dans toutes les images
suivant
^__^
ce à quoi je réponds : je m'excuse, je n'ai pas trop le temps de le coder moi-même
je réponds à la question demandée par un algorithme simple, à transcrire en autoit (là le langage c'est une sorte de variante d'exalgo que je reprends du fin fond de ma mémoire ...)
.-SrB-. The One
- NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
- OUI ! AutoIt est un langage à part entière !
- Dans SciTE sélectionnez 1 mot puis F1
- Don't want english doc ?? go to documentation française !! >>ICI<<

