IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

comparaison deux images


Sujet :

Windows

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 79
    Points : 46
    Points
    46
    Par défaut comparaison deux images
    Bonjour à tous,

    Désolé mais j’ai encore un problème, je possède une image ‘y’ dans un fichier, je voudrais pouvoir comparer cette image avec d’autres images ‘w’ qui se trouvent dans ce même fichier, le but de la comparaison étant de retrouver à quelle image ‘w’ l’image ‘y’ correspond.

    Je connais le langage C et un peu les API , mais je ne sais pas du tout par ou commencer, si quelqu’un pouvait m’aider…. Si je dois utiliser du code C++, merci de m’indiquer en détail les lignes de code, car je ne connais que le C.

    Merci d’avance pour votre aide !!

    Ps : les images sont de petites taille (30 x 30 pixels), ce sont des images qui représentent des chiffres.

  2. #2
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Points : 734
    Points
    734
    Par défaut
    A ma connaissance, les API standard de windows ne fournissent pas de fonction permettant de comparer des images.

    A mon avis, il faudrait que tu procede comme cela :

    - charger l'image de reference dans un tableau en memoire, du genre

    int imageReference[largeur][hauteur];

    - charger l'image pour etre comparée dans un autre tableau en memoire, du genre

    int imageComparee[largeur][hauteur];

    Attention au type. Les images sont generalement codéees sur 32 bits, donc il faut utiliser des int 32bits.

    Ensuite, il y a plusieurs méthodes :

    - si tu cherche des images exactement similaire, au pixel prés, tu peux comparer les deux tableaux, pixel par pixel

    Mais ça ne marche que si tes deux tableaux font la meme taille

    - si tu cherche des images presque similaires ou que tu cherche à detecter à quelle endroit d'une grande image se trouve la petite image que tu cherche, c'est beaucoup plus complexe.

    Là il faut faire intervenir des théories de traitement du signal.
    En gros la méthode consiste a :

    1/ effectuer des detection de contours via des filtres passe-haut ou passe-bas dans ton image de reference
    2/ caracteriser les contours, en calculant par exemple une dizaine de vecteurs tangents au contour

    Puis, dans l'image comparée, tu fais la meme detection de contour et tu recherche un vecteur similaire à l'un des vecteurs de reference.

    L'avantage, c'est que tu peux normaliser les vecteurs pour eliminer les soucis d'echelle, voir meme tenir compte d'une orientation differente de l'image.

    Une fois que tu en as trouvé un, tu regarde si autour de lui il y a les autres vecteurs que les vecteurs de reference, disposés de la meme maniere

    Si tu retrouve touts tes vecteurs caracteristiques, tu as trouvé ton image.

    L'avantage, c'est que comparer des vecteurs est tres rapide (on compare 2 coordonnées seulement) alors que comparer pixel par pixel, ta machine va tourner pendant 2 jours, meme sur des petites images.

    Pour une idée plus precise de la methode, la voici appliquée à la detection de cercles :

    http://www.vieartificielle.com/article/index.php?id=188

  3. #3
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    En batch il existe la commande Fc pour comparer deux fichier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fc /a /l /n "fichier1" "fichier2"

  4. #4
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Points : 734
    Points
    734
    Par défaut
    Ben oui, mais comparer les fichiers ne donnera rien si il y a le moindre octet de difference : dans l'entete du fichier si il n'ont pas été enregistrés par le meme programme ou si celui-ci stocke l'heure d'enregistrement par exemple.

    De plus, compresser deux fois la meme image en jpeg ne donne pas forcement le meme fichier : ca depend de la qualité voulue et d'autres parametres...

Discussions similaires

  1. Matrice de cooccurrences pour la comparaison de deux images
    Par bilzzbenzbilz dans le forum Traitement d'images
    Réponses: 28
    Dernier message: 01/07/2017, 16h12
  2. [Débutant] comparaison deux images
    Par pikinos dans le forum Images
    Réponses: 33
    Dernier message: 30/09/2009, 14h05
  3. comparaison entre deux images
    Par gash59 dans le forum VB.NET
    Réponses: 2
    Dernier message: 07/03/2008, 20h05
  4. [GD] Comparaison de deux images
    Par jack_1981 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 03/04/2007, 16h03
  5. Réponses: 10
    Dernier message: 30/06/2005, 12h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo