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 Forms Discussion :

Comparer deux images


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 12
    Points : 11
    Points
    11
    Par défaut Comparer deux images
    Bonjour,

    Je voudrais comparer deux images mais l'ordinateur n'arrive pas à faire la différence entre ces deux images qui ont les mêmes pixels mais pas le même contenu.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
                pictureBox1.Image = (Image)dgvActesDispo.SelectedRows[0].Cells[0].Value;
     
                Icon icone = new Icon("OK.ICO");
                pictureBox2.Image = icone.ToBitmap();
     
                if (pictureBox1.Image.Equals(pictureBox2.Image))
                    btnAjouter.Enabled = true;
                else
                    btnAjouter.Enabled = false;
    Quand on affiche les contenus de picturebox1 et de picturebox2, on voit bien s'il y a une différence entre ces deux images ou pas mais.

    J'ai aussi essayé avec ReferencesEquals mais cela ne marche pas non plus.

    Merci d'avance de m'aider,
    Gwen Zephyr.

  2. #2
    Membre éprouvé Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Points : 958
    Points
    958
    Par défaut
    pictureBox1.Image.Equals(pictureBox2.Image)

    Ceci compare si les deux instances de l'objet sont équivalentes. En aucun cas cela compare si les images sont identiques!

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    Merci Neptune. Quelle est ta solution pour vérifier si ces deux images sont identiques ?

  4. #4
    Membre éprouvé Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Points : 958
    Points
    958
    Par défaut
    A priori, aucune idée. Déjà comparer longueur, largeur. Si égal, comparer valeur RGB pixel par pixel. A creuser..

  5. #5
    AP
    AP est déconnecté
    Membre confirmé
    Avatar de AP
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2002
    Messages : 480
    Points : 538
    Points
    538
    Par défaut
    tu peux par exemple comparer la taille de chaque image et si elle est égale, comparer octet par octet ou prendre un hash (md5, SHA) de chaque image et comparer les valeurs obtenues.

  6. #6
    Membre éprouvé Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Points : 958
    Points
    958
    Par défaut
    Citation Envoyé par AP Voir le message
    tu peux par exemple comparer la taille de chaque image et si elle est égale, comparer octet par octet ou prendre un hash (md5, SHA) de chaque image et comparer les valeurs obtenues.
    Dans ce cas, tu empeche de comparer deux images aux formats différents mais représentant exactement la même image.

  7. #7
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    une fois que tu as chargé tes 2 images dans une bitmap ou une image, tu peux soit utiliser le GetPixel(x,y) pour comparer point à point (taille X et Y identique avant bien sur) soit passer par un bout de code en unsafe{} pour faire la meme opération mais directement sur une representation sous forme de tableau plutot qu'en passant par GetPixel() qui est tres "lent"...

    Il y a des exemples sur le net et également sur codeproject sur ce genre de traitement

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

Discussions similaires

  1. Comparer deux images binaires
    Par miss_angel dans le forum Images
    Réponses: 6
    Dernier message: 22/04/2008, 20h02
  2. Comparer deux images (100% identiques ou non)
    Par FluidBlow dans le forum C++Builder
    Réponses: 3
    Dernier message: 12/04/2008, 13h40
  3. comparer deux images en vbnet
    Par offspring dans le forum VB.NET
    Réponses: 9
    Dernier message: 06/11/2007, 14h13
  4. comparer deux images
    Par alex01pernot dans le forum Delphi
    Réponses: 4
    Dernier message: 03/04/2007, 16h08
  5. Comparer deux images pas directement superposables
    Par Byhias dans le forum Images
    Réponses: 2
    Dernier message: 12/03/2007, 16h41

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