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 :

Affichage du flux d'une caméra IEEE 1394


Sujet :

OpenCV

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Affichage du flux d'une caméra IEEE 1394
    Bonjour,

    J'utilise une caméra IEEE1394 et windows XP.
    J'écris mes programmes sous Code::blocks.

    J'ai voulu essayer un programme pour afficher les images de ma caméra, mais ça fonctionne pas.

    Il ouvre bien la fenêtre où doit être l'image mais elle est grisée.

    Quelqu'un aurait t-il une piste ?

    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
    #include <highgui.h>
    #include <cv.h>
     
    int main()
    {
     
        IplImage* img;
     
        CvCapture* capture = cvCreateCameraCapture( -1 );
     
     
        if( !capture ) 
            return 10;
     
        cvNamedWindow("video", CV_WINDOW_AUTOSIZE);
        char key = '';   // ICI j'ai mis char key='NULL' sinon ça ne compile pas
     
        if(!cvGrabFrame( capture ))
            return 20;
     
        while(key != 'q')
        {
     
            img = cvRetrieveFrame( capture );
     
            cvShowImage( "video", img );
     
            key = cvWaitKey(10);
     
            if(!cvGrabFrame( capture ))
                key = 'q';  
        }
     
     
        cvDestroyAllWindows();
        img = NULL;
        cvReleaseCapture( &capture );
     
        return 0; 
    }
    J'ai essayé avec un autre programme. Il m'affiche bien ce qu'il y a sur la caméra.

    En revanche dans la fonction callback, là où on peut traiter nos images et bien moi je n'y arrive pas. J'ai l'impression que c'est pas une image qui m'est renvoyé alors qu'il affiche correctement.

    Quand je demande des infos sur l'image dans la fonction callbak, j'obtiens :

    nChannels ==> 112
    nSize ==> 43974120
    depth ==> 3
    height ==> 8
    width ==> 1
    DataOrder ==> 4343634

    D'où cela pourrait venir ???

    Voici le second code :

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    #include "cvcam.h"
    #include "highgui.h"
    #include "iostream"
    #include "stdio.h"
    #include "cxcore.h"
     
    void callback(IplImage* image);
     
    int taille_image = 0;
    int nombre_channel = 0;
    int profondeur = 0;
    int hauteur, largeur, data_order ;
     
    int ShowCamVideo(HWND hwnd, int width, int height)
    {
        VidFormat vidFmt={ 1280, 960, 15.0};
     
        int ncams = cvcamGetCamerasCount( );
        cvcamSetProperty(0, CVCAM_PROP_ENABLE, CVCAMTRUE);
        cvcamSetProperty(0, CVCAM_PROP_CALLBACK,(void*)callback);
     
        cvcamSetProperty(0, CVCAM_PROP_WINDOW, &hwnd);
    cvcamSetProperty( 0, CVCAM_PROP_SETFORMAT, &vidFmt);
     
     
        if( !cvcamInit() )
            return 0;
        cvcamStart();
        return 1;
    }
     
    int main( int argc, char** argv )
    {
     
        cvNamedWindow("cvcam window", CV_WINDOW_AUTOSIZE);
        if( ShowCamVideo((HWND)cvGetWindowHandle("cvcam window"), 1280, 960) )
        {
            cvWaitKey(0);
     
            cvcamStop();
        }
        cvcamExit();
    }
     
     
    void callback(IplImage* image)
    {
     
    nombre_channel = image->nChannels;
    taille_image = image ->nSize;
    profondeur = image -> depth;
    hauteur = image -> height;
    largeur =  image -> width;
    data_order = image -> dataOrder;
     
    printf("Nombre channel : %d \n Size : %d \n Depth : %d \n Hauteur : %d \n Largeur : %d \n DataOrder : %d\n\n",nombre_channel,taille_image,profondeur,hauteur, largeur, data_order);
     
    }
    Merci

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Salut

    Ca m'a l'air d'être sérieux comme problème si personne réponds lol.

    Est t-il possible de faire fonctionner une caméra IEEE 1394 avec OpenCV sous Windows ? Du moins de récupérer les images IplImage dans un format correcte. Parce que c'est cela mon problème. La caméra est détectée.

Discussions similaires

  1. Enregistrer le flux d'une caméra IP sous Android
    Par ensinienne dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 05/04/2012, 10h13
  2. affichage du flux d'une cam IP pour le réseau extérieur
    Par beni_nilo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 12/04/2010, 20h46
  3. Comment diffuser le flux d'une caméra en direct
    Par zycomatic dans le forum Webdesign & Ergonomie
    Réponses: 2
    Dernier message: 12/03/2009, 10h05
  4. affichage de flux d'une cam ip sur une page web
    Par azalee dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 27/05/2008, 21h35
  5. Capturer le flux d'une caméra
    Par minimas dans le forum OpenCV
    Réponses: 1
    Dernier message: 23/10/2007, 15h57

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