Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1677 connectés 

  FORUM HardWare.fr
  Programmation
  C

  pb capture signal webcam

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pb capture signal webcam

n°1931542
amadeh
Posté le 13-10-2009 à 16:02:19  profilanswer
 

Bonjour,
Voilà, je cherche à faire un petit programme qui me permettrait de récupérer une image de ma webcam. J'ai réussi à faire le programme ci-dessous mais je ne comprends pas pourquoi il ne marche pas. Il compile bien mais j'obtiens une image noire.
 

Code :
  1. #include <stdio.h>
  2. #include <sys/ioctl.h>
  3. #include <fcntl.h>
  4. #include <linux/videodev.h>
  5. #include <sys/mman.h>
  6. void extractPix(unsigned char* imgbuffer, int hauteur, int largeur){
  7.         FILE * fp = fopen("captureCam.ppm", "w" );
  8.         fprintf(fp, "P6\n%d %d\n255\n",largeur, hauteur);
  9.         int x, y, r, g, b, p;
  10.         p=0;
  11.         for(y=0;y<hauteur; y++){
  12.                 for(x=0; x<largeur; x++){
  13.                 b=imgbuffer[p];p++;
  14.                 g=imgbuffer[p];p++;
  15.                 r=imgbuffer[p];p++;
  16.                 putc(r, fp);
  17.                 putc(g, fp);
  18.                 putc(b, fp);
  19.                 }
  20.         }
  21.         fflush(fp);
  22.         fclose(fp);
  23. }
  24. int main(int argc, const char* argv[]){
  25.         int fd;
  26.         fd = open("/dev/video0", O_RDWR);
  27.         struct video_mbuf mbuf;
  28.         struct video_mmap mapbuf;
  29.         ioctl(fd, VIDIOCGMBUF, &mbuf);
  30.         unsigned char * ptr;
  31.         unsigned char * posImg;
  32.         ptr =  (unsigned char *)mmap(0, mbuf.size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
  33.         mapbuf.frame = 0;
  34.         mapbuf.height = 480;
  35.         mapbuf.width = 640;
  36.         mapbuf.format = VIDEO_PALETTE_RGB24;
  37.         ioctl(fd, VIDIOCMCAPTURE, &mapbuf);
  38.         ioctl(fd, VIDIOCSYNC, 0);
  39.         posImg = ptr + mbuf.offsets[0];
  40.         extractPix(posImg, 480, 640);
  41.         close(fd);
  42.         munmap(ptr, mbuf.size);
  43.         return 0;
  44. }

mood
Publicité
Posté le 13-10-2009 à 16:02:19  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  pb capture signal webcam

 

Sujets relatifs
envoyer un signal sur de l'usb[PHP][Resolu] Envoyer un signal à un processus depuis une page PHP ?
Diffuser un flux vidéo à partir d'une webcam[C][GTK] Problème de signal_connect
[matlab] Traitement de donnée/signalalgorithme de mesure d'harmoniques d'un signal de fréquence connu
programmation labview pour mesure de péride de signal TORCapture HTML ?
[C][Linux]Que fait un programme qui reçoit un signal ?Script enregistrement webcam
Plus de sujets relatifs à : pb capture signal webcam


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR