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 :

Problème avec CVCam


Sujet :

OpenCV

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 36
    Points : 27
    Points
    27
    Par défaut Problème avec CVCam
    Bonjour à tous!

    J'essaie de faire un programme traitant le flux video d'une camera. J'utilise CvCam pour recupérer le flux video et le traite dans la fonction CALLBACK dont voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
       IplImage* image1 = image;
        assert (image);
     
       iheight = image1->height;
       iwidth = image1->width;
     
       /* Print the original image in the window */   
          cvCanny(image1, averageImage, 20, 100, 3);
          cvShowImage("Original window",image1);
    Losque je lance le programme on me dit qu'il y a un probleme de format d'image.Je ne comprend pas donc si quelqu un pouvait m'aider...

    Merci d'avance

  2. #2
    Membre expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Points : 3 189
    Points
    3 189
    Par défaut
    euh le reste de ton code c'est quoi?? parce que si il n'y a que ca , je ne pense pas que tu puisses recuperer le flux video(c'est bien ce que tu veux, non?)! j'aimerais voir ton main enfin ou tu appelles ton callback et puis que ce passe t'il avec ton code pour l'instant?

    sinon y'a CAPTUREFROMCAM qui pourrait t'aider

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 36
    Points : 27
    Points
    27
    Par défaut
    Voila le code complet

    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
    59
    60
    61
    62
    63
    64
     
    #include "cvcam.h"
    #include "highgui.h"
    #include <iostream>
    #include "cv.h"
     
    static int index;
     
    /**************************************************************************\
                How to set video resolution programatically
    \**************************************************************************/ 
    void callback(IplImage* image)
    {
       IplImage* image1 = image;
     
       int iheight,iwidth;
       assert (image);
     
       iheight = image1->height;
       iwidth = image1->width;
     
     
     
         //Algo de canny et affichage
       cvCanny(image1, averageImage, 20, 100, 3);
       cvShowImage("Original window",image1);
     
      }
     
     
     
    int ShowCamVideo(HWND hwnd, int width, int height)
    {
        VidFormat vidFmt={ width, height, 60.0};
     
        int ncams = cvcamGetCamerasCount( );
        cvcamSetProperty(0, CVCAM_PROP_ENABLE, CVCAMTRUE);
        cvcamSetProperty(0, CVCAM_PROP_CALLBACK,(void*)callback);
        cvcamSetProperty(0, CVCAM_PROP_WINDOW, &hwnd);   
     
        //Set Video Format Property
        cvcamSetProperty( 0, CVCAM_PROP_SETFORMAT, &vidFmt);
     
        if( !cvcamInit() )
            return 0;
        cvcamStart();
        return 1;
    }
     
     
    int main( int argc, char** argv )
    {
        index = 0;
        cvNamedWindow("Original window", CV_WINDOW_AUTOSIZE);
     
        cvNamedWindow("Treated window", CV_WINDOW_AUTOSIZE);
     
        if( ShowCamVideo((HWND)cvGetWindowHandle("Treated window"), 640, 480) )
        {
            cvWaitKey(0);
            cvcamStop();
        }
        cvcamExit();
    }
    Le probleme c'est que lorsque je lance le programme,il me dit qu'il y a un probleme dans le format de l'image. Est ce que ca peut venir de ma camera ou bien toutes les camera sont compatible?
    Merci pour vos réponses

  4. #4
    Membre expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Points : 3 189
    Points
    3 189
    Par défaut
    deja commente la ligne avec le filtre de canny pour le moment (ca ne vient surement pas de ca mais histoire d'etre sur!)

    ensuite je ne sais plus ce que représente le 3 paramètres de la ligne VidFormat = vidFmt(height,width,60)

    tente d'autres valeurs peut etre !

    et sinon dans le main lors de l'appel de showcamvideo tente d'autres resolutions, ta cam a quel resolution? a mon avis 640x480 ca devrait passer...

    sinon je sais que j'utilisais capturefromcam(highgui.h) avant avec une webcam logitech et ca fonctionnait nickel et quand je suis passé avec une cam sans fil et carte d'acquisition capturefromcam ne fonctionnait plus alors j'ai utilisé cvcam avec la fonction callback et ca marche au poil, donc je pense que ca supporte toutes les cam a condition evidement d'avoir les drivers d'installés

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut proble avec camera sans fils
    Bonjours
    Moi j'ai un probleme un peu different,je travaille aussi avec une camera sans fils. je fais l'acquisition via un boitier Pinnacle, mon probleme c'est que dès que je fais l'aquisition video , en prog C ça fait sauter mon standar Tv etje recupere une image relativement dégueulasse. Une fois que je retourne sur le logiciel fourni je remarque qu'on a changer de standart Tv serait t-il possible de parametrer via mon programme les standart télé? je sais pas si je suis clair .... merci d'avance voici mes lignes de codes, si ça peu aider:

    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<cv.h>
    #include<highgui.h>
    #include<stdio.h>
    #include<ctype.h>
    #include<cvcam.h>
    #include<conio.h>
     
     
     
     
    int main(int argc, char** argv)
    {
        int acqu=0,touche,ref=0;
        IplImage *frame=0,*imDiff;
        CvCapture *capture = 0;
     
     
        capture = cvCaptureFromCAM( -1 );
     
     
        if(!capture)
        {
            fprintf(stderr,"Pas de caméra connectée...\n");
            getch();
            return -1;
        }
     
    // attribution du nom de la fenetre
     
    	cvNamedWindow("WebCam",1);
     
        for(;;)
        {
     
            frame = cvQueryFrame( capture ); 
            //double cvGetCaptureProperty( capture,CV_CAP_PROP_HUE ); 
            cvShowImage("WebCam",frame);
            int touche = cvWaitKey(10);
     
            if(!frame)
            break;
     
     
            switch (touche)
            {
                case ('c'):
                    printf("Image capturé\n");
                    acqu=1;
                break;
                case ('e'):
        	        printf("exit\n");
                    cvReleaseCapture(&capture);
                    cvDestroyAllWindows();
                break;
            }   
     
     } 
    }

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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