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 :

Enregistrement de l'image d'une webcam


Sujet :

OpenCV

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Par défaut Enregistrement de l'image d'une webcam
    Pour mon stage j'ai besoin de réaliser le traitement en C d'une image toute les 3 minutes environ. Pour cela j'ouvre la connexion avec la webcam, je sauvegarde l'image obtenue, je ferme la connexion avec la webcam et ensuite j'ouvre l'image sauvegardé précedement. Je fait cela car je n'ai pas besoin d'avoir une image en continue de la webcam ce qui prend beaucoup de ressource et mon programme plante au bout d'un certain temps.

    voici mon 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
    this->capture = cvCaptureFromCAM(0);
     
           if (!this->capture)
           {
              fprintf(stderr,"Initialisation de la capture impossible...\n"); 
              fprintf(stderr,"Webcam inseree ?\n");
              return FALSE;
           }
     
           /* capture l'image de la webcam */
           this->frame = cvQueryFrame( this->capture );
           if( !this->frame ) 
               return FALSE;
     
     
     
           if( !this->image ) {
                /* On créé l'image de la webCam */
                this->image = cvCreateImage( cvGetSize(this->frame), 8, 3);
                this->image->origin = this->frame->origin;
     
           }   
     
           cvSaveImage(imageCoulFileName, this->frame);
     
           this->destructCapture(this);
     
           this->coulImage = cvLoadImage(imageCoulFileName, 1);
    Mon problème :
    L'image que j'enregistre est une image verte : pourquoi?
    et que me conseiller vous pour changé cela et avoir l'image de la webcam.

    merci.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 14
    Par défaut
    salut,
    essaye de faire un affichage de l'image
    ou bien de ce que tu recoit de ta cam pour savoir le probleme

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Par défaut
    j'ai afficher l'image de la webcam et celle que j'enregistre. Lorsque je laisse ouvert la communication avec la webcam j'ai bien l'image que je recherche mais je ne veux (et peut) pas laisser cette communication ouverte en permanance.

    Lorsque j'ouvre, j'enregistre, je ferme et j'ouvre l'image : les 2 images sont verte.

  4. #4
    Membre éprouvé Avatar de hunta_kirua
    Profil pro
    Inscrit en
    Février 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 110
    Par défaut
    Salut,

    Essaie de mettre une pause après ouverture/fermeture de la communication. J'ai déjà eu des problèmes lors d'accès aux registres d'une caméra (changement de mode/résolution par exemple) probablement dus à une latence.

    A+

    Hunta

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Par défaut
    avec un sleep() ou cvWayKey()?

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Par défaut
    je te remerci hunta c'etait bien du à une latence. Pour ceux qui aurai besoin comme moi de ne pas garder la communication ouverte voila une solution :

    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
    int i = 0;       
    while(i<300) {
           /* capture l'image de la webcam */
           this->frame = cvQueryFrame(this->capture);
           if( !this->frame ) { 
               return FALSE;
               printf("damned\n");
               }
     
           cvShowImage("WebCam", this->frame );  
           cvWaitKey(10);
           i++;
    }      
           cvSaveImage(imageCoulFileName, this->frame);
     
           this->destructCapture(this); 
     
           this->coulImage = cvLoadImage(imageCoulFileName, 1);
    si quelqu'un à une autre solution plus propre je l'a veux bien =)

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 2
    Par défaut
    Citation Envoyé par zuzudesbois Voir le message
    j'ai afficher l'image de la webcam et celle que j'enregistre. Lorsque je laisse ouvert la communication avec la webcam j'ai bien l'image que je recherche mais je ne veux (et peut) pas laisser cette communication ouverte en permanance.

    Lorsque j'ouvre, j'enregistre, je ferme et j'ouvre l'image : les 2 images sont verte.
    Quand tu dis que ton programme plante au bout d'un certain temps c'est peut-être que tu fais une allocation mémoire dans ton prog et que tu ne l'a libère pas. Tu peux faire le test en lançant ton programme et en regardant l'état de ta mémoire. Si la mémoire alloué à ton programme augmente en permanence pendant le fonctionnement de ton programme c'est que tes allocation mémoire ne se pas bien gérées.

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

Discussions similaires

  1. Acquisition d'image d'une Webcam
    Par Vesta dans le forum Langage
    Réponses: 6
    Dernier message: 28/09/2006, 23h42
  2. Enregistrer chemin ou image dans une base
    Par cari dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 14/08/2006, 11h41
  3. Capture d'une image avec une webcam
    Par Freyja dans le forum Linux
    Réponses: 2
    Dernier message: 09/08/2006, 12h35
  4. Réponses: 2
    Dernier message: 05/07/2006, 15h21
  5. Acquérir une image d'une webcam
    Par dz_robotix dans le forum Linux
    Réponses: 2
    Dernier message: 22/06/2006, 11h45

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