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

Android Discussion :

bitmap et Iplimage


Sujet :

Android

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 48
    Par défaut bitmap et Iplimage
    salut tout le monde,j'ai réussi à acceder au pixel d'une image sous android mais ..mais les valeurs des pixels qui me retourne sont très différent
    est ce que quelqu'un a une idée merci

  2. #2
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Bonjour,

    j'ai réussi à acceder au pixel d'une image sous android mais ..mais les valeurs des pixels qui me retourne sont très différent
    est ce que quelqu'un a une idée merci
    Merci de bien vouloir donner une exemple ou de préciser un peu plus votre problème .

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 48
    Par défaut
    of course, voila j'accède à la camera via onpreview ok
    comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public void onPreviewFrame(byte[] data, Camera camera) {
    						// TODO Auto-generated method stub						
    						MyText.setText(String.valueOf(data[1]));
    					}
    et puis les valeur de mon data sont négativeen iplimage il sont entre 0 et 255 tout dépend du nombre de bit que déclare

  4. #4
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Bonjour,

    et puis les valeur de mon data sont négativeen iplimage il sont entre 0 et 255 tout dépend du nombre de bit que déclare
    Le format retourné n'est pas du RGB , mais bien du YUV.

    http://developer.android.com/referen...wCallback.html

    data the contents of the preview frame in the format defined by ImageFormat, which can be queried with getPreviewFormat(). If setPreviewFormat(int) is never called, the default will be the YCbCr_420_SP (NV21) format.

    Tu trouveras une discussion sur le decodage de ce format

    https://groups.google.com/group/andr...b29d3ddc8abf9b

    et ici

    http://code.google.com/p/android/issues/detail?id=823



    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
    // David Manpearl 081201
    public static void decodeYUV(int[] out, byte[] fg, int width, int
    height) throws NullPointerException, IllegalArgumentException {
            final int sz = width * height;
            if(out == null) throw new NullPointerException("buffer 'out' is
    null");
            if(out.length < sz) throw new IllegalArgumentException("buffer 'out'
    size " + out.length + " < minimum " + sz);
            if(fg == null) throw new NullPointerException("buffer 'fg' is null");
            if(fg.length < sz) throw new IllegalArgumentException("buffer 'fg'
    size " + fg.length + " < minimum " + sz * 3/ 2);
            int i, j;
            int Y, Cr = 0, Cb = 0;
            for(j = 0; j < height; j++) {
                    int pixPtr = j * width;
                    final int jDiv2 = j >> 1;
                    for(i = 0; i < width; i++) {
                            Y = fg[pixPtr]; if(Y < 0) Y += 255;
                            if((i & 0x1) != 1) {
                                    final int cOff = sz + jDiv2 * width + (i >> 1) * 2;
                                    Cb = fg[cOff];
                                    if(Cb < 0) Cb += 127; else Cb -= 128;
                                    Cr = fg[cOff + 1];
                                    if(Cr < 0) Cr += 127; else Cr -= 128;
                            }
                            int R = Y + Cr + (Cr >> 2) + (Cr >> 3) + (Cr >> 5);
                            if(R < 0) R = 0; else if(R > 255) R = 255;
                            int G = Y - (Cb >> 2) + (Cb >> 4) + (Cb >> 5) - (Cr >> 1) + (Cr >>
    3) + (Cr >> 4) + (Cr >> 5);
                            if(G < 0) G = 0; else if(G > 255) G = 255;
                            int B = Y + Cb + (Cb >> 1) + (Cb >> 2) + (Cb >> 6);
                            if(B < 0) B = 0; else if(B > 255) B = 255;
                            out[pixPtr++] = 0xff000000 + (B << 16) + (G << 8) + R;
                    }
            }
     
    }

Discussions similaires

  1. Réponses: 0
    Dernier message: 02/10/2009, 11h16
  2. Conversion d'IplImage en Bitmap
    Par linuxfr dans le forum OpenCV
    Réponses: 0
    Dernier message: 03/04/2009, 20h50
  3. Pb Lecture de bitmap monochrome
    Par Loïc38 dans le forum C++Builder
    Réponses: 4
    Dernier message: 02/07/2002, 18h24
  4. Lecture d'une image bitmap
    Par Geronimo dans le forum x86 32-bits / 64-bits
    Réponses: 18
    Dernier message: 28/06/2002, 12h01
  5. Comment faire pour créer un bitmap
    Par GliGli dans le forum C++Builder
    Réponses: 2
    Dernier message: 24/04/2002, 15h41

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