[..] Pixels images identiques

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
periaz
Niveau 4
Niveau 4
Messages : 89
Enregistré le : sam. 25 avr. 2009 11:52
Status : Hors ligne

[..] Pixels images identiques

#1

Message par periaz »

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
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Pixels images identiques

#2

Message par Tlem »

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. ;)
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é".
periaz
Niveau 4
Niveau 4
Messages : 89
Enregistré le : sam. 25 avr. 2009 11:52
Status : Hors ligne

Re: [..] Pixels images identiques

#3

Message par periaz »

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 =)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Pixels images identiques

#4

Message par Tlem »

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.
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é".
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Pixels images identiques

#5

Message par jbnh »

Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
periaz
Niveau 4
Niveau 4
Messages : 89
Enregistré le : sam. 25 avr. 2009 11:52
Status : Hors ligne

Re: [..] Pixels images identiques

#6

Message par periaz »

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 :

Code : Tout sélectionner

Global $comp[$nmbre+1][$X*$Y+1]
Avatar du membre
SrBelial
Niveau 7
Niveau 7
Messages : 335
Enregistré le : jeu. 22 juil. 2010 11:29
Localisation : 81 et 31
Status : Hors ligne

Re: [..] Pixels images identiques

#7

Message par SrBelial »

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é ?
.-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<<
[/size]
periaz
Niveau 4
Niveau 4
Messages : 89
Enregistré le : sam. 25 avr. 2009 11:52
Status : Hors ligne

Re: [..] Pixels images identiques

#8

Message par periaz »

Tu peux montrer comment tu comparerais les pixels stp
Car je crois que je suis parti sur de mauvaises bases ^^
Avatar du membre
SrBelial
Niveau 7
Niveau 7
Messages : 335
Enregistré le : jeu. 22 juil. 2010 11:29
Localisation : 81 et 31
Status : Hors ligne

Re: [..] Pixels images identiques

#9

Message par SrBelial »

sans écrire de code voici un algo qui je pense ne serait pas trop gourmand :

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

 
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 ...)
.-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<<
[/size]
Répondre