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

2D Java Discussion :

Parcourir les pixels d'une image


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 47
    Par défaut Parcourir les pixels d'une image
    Bonjour,

    j'ai écrit ce code qui permet de parcourir les pixels d'une image en forme de spirale sur les 8 directions et la sauvegarder dans un tableau d'entier mais le code m'affiche toujours le même résultat 150.225 150.225 150.225 150.225
    Veuillez m'aider à corriger ce code SVP
    Merci
    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
    	public int[][] point(BufferedImage bufferedImage)
    	{  int width=300,height=450;
    	    int d = Math.min(height/2, width/2);
    	    int n = 10;
    	    int dn= d/n;
     
    	    int L=width/2;int l=height/2;
     
    	   int[][] points=new int[2][10000] ;
     
    	    for ( int i=0,k=1 ; i<(n*8+1) ; i++ ,k++)
    	    {  
    	    	points[0][i]  =L;
    	    	points[0][i+1]=L+(k*dn);
    	    	points[0][i+2]=L+(k*dn);
    	    	points[0][i+3]=L;
    	        points[0][i+4]=L+(k*(-dn));
    	        points[0][i+5]=L+(k*(-dn));
    	        points[0][i+6]=L+(k*(-dn));
    	    	points[0][i+7]=L;
    	    	points[0][i+8]=L+(k*dn);
     
    	    	points[1][i]  =l;
    	    	points[1][i+1]=l;
    	    	points[1][i+2]=l+(k*dn);
    	    	points[1][i+3]=l+(k*dn);
    	        points[1][i+4]=l+(k*dn);
    	        points[1][i+5]=l;
    	        points[1][i+6]=l+(k*(-dn));
    	    	points[1][i+7]=l+(k*(-dn));
    	    	points[1][i+8]=l+(k*(-dn));
    	    }
     
            for (int i=0,j=0;i<(n*8+1) ;i++,j++){ 
    	    System.out.println(points[0][i]+"."+points[1][j]);
            }
     
    	   return points;	     
    	}
    Images attachées Images attachées  

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2012
    Messages
    3 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3 020
    Par défaut
    Bonjour,

    Je ne dois pas avoir tout compris au besoin, car le code présenté ne parcourt rien du tout.

    L'erreur est ici purement algorithmique.

    Première question : pourquoi utiliser deux variables dans les deux boucles for alors que ces deux variables sont toujours les mêmes? A part brouiller le code, je ne vois pas l'intérêt avec le code existant.

    Deuxième question : êtes vous passé en débug dans votre code pour voir ce qu'il faisait? Je pense qu'en le faisant, vous allez vite comprendre le problème.

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 47
    Par défaut
    J'aimerais comparer deux images si sont identiques ou non sans parcourir toute l'image j'ai voulu un algorithme qui parcourt les pixels d'une image sous la forme d'un spirale comme l'exemple qui se trouve dans la pièce jointe. Qu'elles sont les variables qui sont les mêmes dans les deux boucles?
    Merci

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2012
    Messages
    3 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3 020
    Par défaut
    i et k dans la première boucle.

    i et j dans la seconde.

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 47
    Par défaut
    La première boucle pour remplir le tableau
    La deuxième boucle pour afficher
    Il faut des variables différentes
    Vous pouvez m'aider à corriger ce code car je n'ai pas trouvée où est exactement la faute ?
    Merci

  6. #6
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2012
    Messages
    3 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3 020
    Par défaut
    Je ne vois pas en quoi il faut deux variables par boucle. Surtout si elles se suivent.

    De plus, je ne peux pas corriger votre code car je ne comprends pas ce que vous cherchez à faire.

    Tout ce que je peux vous dire:

    1. C'est que pour les boucles vous pourriez écrire :

    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
    	    for ( int i=0; i<(n*8+1) ; i++)
    	    {  
    	    	points[0][i]  =L;
    	    	points[0][i+1]=L+(i*dn);
    	    	points[0][i+2]=L+(i*dn);
    	    	points[0][i+3]=L;
    	        points[0][i+4]=L+(i*(-dn));
    	        points[0][i+5]=L+(i*(-dn));
    	        points[0][i+6]=L+(i*(-dn));
    	    	points[0][i+7]=L;
    	    	points[0][i+8]=L+(i*dn);
     
    	    	points[1][i]  =l;
    	    	points[1][i+1]=l;
    	    	points[1][i+2]=l+(i*dn);
    	    	points[1][i+3]=l+(i*dn);
    	        points[1][i+4]=l+(i*dn);
    	        points[1][i+5]=l;
    	        points[1][i+6]=l+(i*(-dn));
    	    	points[1][i+7]=l+(i*(-dn));
    	    	points[1][i+8]=l+(i*(-dn));
    	    }
     
            for (int i=0;i<(n*8+1) ;i++){ 
    	    System.out.println(points[0][i]+"."+points[1][i]);
            }
    Ce code est strictement équivalent au votre. Avec une seule variable par boucle. Ce qui est bien plus lisible il me semble.

    2. Pour comprendre ce que fait votre code, si vous ne le voyez pas en relisant votre code, il vous faut passer en débug dans vos boucle et voir comment vos tableaux évoluent.

Discussions similaires

  1. rendre tranparent les pixels d'une image
    Par lisco dans le forum Qt
    Réponses: 3
    Dernier message: 13/05/2009, 17h06
  2. lire les pixels d'une image jpg
    Par shakoulé dans le forum C
    Réponses: 2
    Dernier message: 01/05/2009, 15h47
  3. [WD7.5] Compter les pixels d'une Image
    Par mlww dans le forum WinDev
    Réponses: 5
    Dernier message: 05/07/2007, 22h50
  4. parcourir les pixels d'une image
    Par nonosa dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 13/06/2007, 15h47
  5. Changer les pixels dans une image
    Par mimane_01 dans le forum Images
    Réponses: 1
    Dernier message: 15/02/2007, 13h12

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