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 :

manipuler les pixels


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 59
    Par défaut manipuler les pixels
    J'ai un probleme lors de lire les pixels car quand j'essaie de lire les pixels d'une image puis j'essaie de l'affiche de nouveau mais en utilisant le pixel j'aurai pas la meme chose mais un truc proche..

    Voila mon code si quelqu'un peut m'aider.

    SourceImage img = new SourceImage(list);
    BufferedImage iBuff = img.getBufferedImage();
    int val;
    int signBit = 0;
    int signMask = 0;
    int valMask = 0;
    int bitpix = Attribute.getSingleIntegerValueOrDefault(list,TagFromName.BitsStored,16);
    boolean signed = img.isSigned();
    if(signed){
    if(img.getBufferedImage().getSampleModel().getDataType()== java.awt.image.DataBuffer.TYPE_BYTE){
    signBit = 0x0080;
    signMask = 0xffffff80;
    }else{
    signBit = 0x8000;
    signMask = 0xffff8000;
    }
    }else{
    valMask = 0;
    int stored = bitpix; // bits stored
    while (stored-- > 0) {
    valMask = (valMask << 1) | 1;
    }
    }
    width = iBuff.getWidth();
    height = iBuff.getHeight();
    depth = sliceMap.size();
    data = new int[height][width][depth];
    double slope = Attribute.getSingleDoubleValueOrDefault(list, TagFromName.RescaleSlope,1.0);
    double intercept = Attribute.getSingleDoubleValueOrDefault(list, TagFromName.RescaleIntercept,-1024.0);
    for(int k= 0; k < depth; k++){
    file = new File((String) sliceMap.get(k*1.0));
    list.read(new DicomInputStream(file));
    img = new SourceImage(list);
    signed = img.isSigned();
    iBuff = img.getBufferedImage();
    for(int i=0; i<height; i++){
    for(int j=0; j<width; j++){
    val = iBuff.getSampleModel().getSample(j, i, 0, iBuff.getRaster().getDataBuffer());
    val = (signed ? val: (val & valMask));
    if ((signed && ((val & signBit) != 0)))
    val |= signMask;
    val = (int)Math.round((slope * val)+intercept);
    data[i][j][k] = val;
    }
    }
    }

  2. #2
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 59
    Par défaut
    Juste pour dire comment je lis l'image apres.

    En effet je prends un tableau bi dimesion de mon tableau initial par example data[0] puis je tansforme ce tableau en byte et j'utilise ensuite la classe ByteArrayInputStream pour afficher cette image

Discussions similaires

  1. manipuler les favoris
    Par olivierx dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 24/10/2005, 17h04
  2. [image]buffered Image et manipulation de pixels
    Par noOneIsInnocent dans le forum 2D
    Réponses: 11
    Dernier message: 17/02/2005, 19h36
  3. Réponses: 3
    Dernier message: 13/10/2004, 10h43
  4. Manipuler les fenêtre d'un shell en c
    Par Gential dans le forum C
    Réponses: 2
    Dernier message: 24/10/2003, 09h04
  5. [VB6]manipuler les semaines en VB ?
    Par kamadji dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 02/05/2003, 12h33

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