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

avec Java Discussion :

comparaison d'image en ignorant des zones


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 14
    Points : 14
    Points
    14
    Par défaut comparaison d'image en ignorant des zones
    bonjour à tous,

    mon projet : comparait 2 dossiers, un dossier de référence contenant les images de référence et 1 dossier à tester contenant les images à tester.
    le nombre d'images dans les dossier doit etre le meme. 1 image de ref pour 1 image de test. puis faire un petit rapport en pdf.

    il faudra répertorier les fichiers images dans l'ordre alphabétique.
    pour chaque image ref et test vérifié qu'elles ont les meme proportion LxH.
    ensuite procédé à la vérification pixel par pixel.

    le probleme est qu'il y aura des zones dans les images qu'il ne faut pas prendre en compte, ex: l'heure la date le niveau de batterie.

    les images sont des screenshot de pda. mais tous est sur pc donc pas de souci.

    alors je voudrai savoir comment faire pour ignorer des zones sur l'image ?

    j'avais l'idée de mettre les coordonnées à ignoré dans un fichier txt ex:
    X1,Y1:X2,Y2 // défini un rectangle à ignorer.
    mais je ne sais pas trop comment faire pour utiliser cela.

    Pour le moment je n'ai pas de code, je veux d'abord avoir un algo clair que je pourrais suivre.

    sinon pour la comparaison d'image j'ai trouver sur le forum, et pareil pour le coté pdf, et cela fonctionne bien.

    code de comparaison de "allstar" ici le sujet de allstar
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    package untitled1;
     
    import java.awt.image.BufferedImage;
    import java.io.*;
    import javax.imageio.ImageIO;
    import java.util.*;
     
    public class Untitled1 {
        public static void main(String[] args) {
            Vector original = testImg("c:\\gif\\14.gif");
            Vector clonde   = testImg("c:\\gif\\15.gif");
            System.out.println(original.equals(clonde));
     
        }
     
        public static Vector testImg(String file) {
            Vector all = new Vector();
            try {
                BufferedImage im = ImageIO.read(new FileInputStream(file));
                int w = im.getWidth(null);
                int h = im.getHeight(null);
                int[] rgbs = new int[w * h];
                int x = 0;
                im.getRGB(0, 0, w, h, rgbs, 0, w);
     
                for (int i = 0; i < w; i++) {
                    Vector line = new Vector();
                    for (int j = 0; j < h; j++) {
                        line.add(new Integer(rgbs[x]));
                        //System.out.println("Pixel " + i + "," + j + "has " +
                        //                   "RGB values of " + rgbs[x]);
                        x++;
                    }
                    all.add(line);
                }
     
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            return all;
        }
    }

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    885
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 885
    Points : 1 320
    Points
    1 320
    Par défaut
    Salut,

    ce qur tu fais là, c'est mettre tous les pixels dans un Vector, cela pour deux images, puis de vérifier s'ils ont le même contenu. Tu parcours pour l'instant TOUS les pixels des images.
    Vu que tu as une zone à ignorer, zone dont tu as les coordonnées, à toi de modifier tes boucles pour ne parcourir que les pixels qui t'intéressent : tous les pixels SAUF ceux de la zone à ignorer.
    En gros, disons que ton rectangle à ignorer est au milieu : tu ne regardes que le rectangle au dessus, le petit à sa gauche, idem à sa droite, et le rectangle en dessous. That's all.
    *graou* et même *graou*, ou encore *graou*

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ouvrir des images avec des zones réactives
    Par filtep dans le forum Général JavaScript
    Réponses: 20
    Dernier message: 24/01/2010, 11h03
  2. [Joomla!] des zone d'image clicable qui change de couleur
    Par heeedi dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 07/01/2010, 09h38
  3. Réponses: 3
    Dernier message: 07/08/2008, 19h07
  4. Comment faire des zones de texte sur image
    Par Myogtha dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 12/03/2007, 15h27
  5. rollover dans une image avec des zones cliquables
    Par brasco06 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 23/02/2006, 11h15

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