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

OpenCV Discussion :

Convertir la depth_image de la Kinect en "OpenCV_format"


Sujet :

OpenCV

  1. #1
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Convertir la depth_image de la Kinect en "OpenCV_format"
    Bonjour à tous,

    Je travaille actuellement sur une application de tracking, j'utilise la kinnect comme capteur (via la biblio OpenNi) et j'aimerai faire le processing en utilisant OpenCv (extraction de features et apprentissage).

    Seulement mon soucis, c'est que Je ne parviens pas à copier le buffer d'openNi sur une image classique OpenCV(IplImage)...

    Voila le code que j'utilise pour récupérer et convertir (ça ne marche pas)
    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
     
     
    hile(true)             // Crux of this project
    {
        if(device.getSensorInfo(SENSOR_IR) != NULL)
        {
            rc = ir.readFrame(&irf);        // Read one IR VideoFrame at a time
            if(irf.isValid())               // If the IR VideoFrame is valid
            {
                vmode = ir.getVideoMode();  // Get the IR VideoMode Info for this video stream.
                                            // This includes its resolution, fps and stream format.
                const uint16_t* imgBuf = (const uint16_t*)irf.getData();
                                            // PrimeSense gives the IR stream as 16-bit data output
                h=irf.getHeight();
                w=irf.getWidth();
                frame.create(h, w, CV_16U); // Create the OpenCV Mat Matrix Class Object
                                            // to receive the IR VideoFrames
                memcpy(frame.data, imgBuf, h*w*sizeof(uint16_t));
                                            // Copy the ir data from memory imgbuf -> frame.data
                                            // using memcpy (a string.h) function
                frame.convertTo(frame, CV_8U);
                                            // OpenCV displays 8-bit data (I'm not sure why?)
                                            // So, convert from 16-bit to 8-bit
                namedWindow("ir", 1);       // Create a named window
                imshow("ir", frame);        // Show the IR VideoFrame in this window
    			if(waitKey(33)==27)break;          // Escape key number
            }
        }
    }
    ça bloque au niveau de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    memcpy(frame.data, imgBuf, h*w*sizeof(uint16_t));
    J'arrive pas à débugguer :/.

    Quelqu'un aurait-il fait cela auparavant ?

    Je vous remercie.

  2. #2
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    C'est bon, j'ai pu régler mon problème !

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

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