begin process at 2012 05 30 00:19:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Multimédia

 > 

[OpenCV] Récuperer le flux video d'une camera


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[OpenCV] Récuperer le flux video d'une camera

mardi 6 février 2007 à 17:49:48 | [OpenCV] Récuperer le flux video d'une camera

jimnastiq

Salut,

voila je cherche a recupérer le flux video d'une camera sans fil! pour vous donner le contexte j'ai un recepteur qui capte le signal de la camera et qui le transmet a une carte d'acquisition qui est relié au PC(sous Win XP) par l'USB.

Donc j'ai un code qui tente de récupérer le flux video mais seulement il ne trouve pas ce flux , voici le code :

#include <highgui.h>

void main()
{
    
/* Variables */
     IplImage *im;
     IplImage *im2;
     CvCapture *avi;
     int i = 0;
    
/* Ouverture de la video */
     avi = cvCaptureFromCAM(-1);
     cvNamedWindow("Ma fenetre", CV_WINDOW_AUTOSIZE);
     while(cvGrabFrame(avi))
     {                 
      im = cvRetrieveFrame(avi);
      /* Traitement de l'image */
      cvWaitKey(40);
      cvShowImage("Ma fenetre", im);  
     }     
     cvWaitKey(0);
}

avec ce code la fenetre reste grise alors j'ai cherché des codes sur le net et je suis tombé sur celui ci mais avec celui ci j'ai le message d'erreur qui me dit qu'il ne trouve pas le flux :


#include <cv.h>
#include <cvaux.h>
#include <highgui.h>
#include <stdio.h>


void on_mouse(int event, int x, int y, int flags, void *param)
{
    switch(event)
    {
        case CV_EVENT_LBUTTONDOWN: printf("MouseLeftButtonDown x= %d y= %d\n",x,y);break;
        case CV_EVENT_RBUTTONDOWN: printf("MouseRightButtonDown x= %d y= %d\n",x,y);break;
    }
}

int main()
{
    CvCapture* capture=cvCaptureFromCAM(0);
    cvNamedWindow("Capture Webcam", CV_WINDOW_AUTOSIZE);
    cvNamedWindow("Lissage Gaussien", CV_WINDOW_AUTOSIZE);
    cvSetMouseCallback("Capture Webcam",on_mouse,0);

    if(capture)
    {
        IplImage* frame=cvQueryFrame(capture);
        int width = (int)cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_WIDTH );
        int height= (int)cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_HEIGHT);
        IplImage* gray     = cvCreateImage(cvSize(width,height), IPL_DEPTH_8U ,1);
        IplImage* gaussian = cvCreateImage(cvSize(width,height), IPL_DEPTH_8U ,1);
   
        printf("PRESS SPACE TO QUIT \n\n");
       
        while(1)
        {
            frame = cvQueryFrame(capture);
            cvShowImage("Capture Webcam",frame);
            cvConvertImage(frame,gray,1);
            cvSmooth(gray,gaussian,CV_GAUSSIAN,5,5);
            cvShowImage("Lissage Gaussien",gaussian);
            if(cvWaitKey(1)==' ')break;
        }
    }
    else printf("Video stream not found\n\n");
    cvWaitKey(0);
    return 0;
}



mercredi 7 février 2007 à 11:21:46 | Re : [OpenCV] Récuperer le flux video d'une camera

turnerom

Change dans ta ligne avi = cvCaptureFromCAM(-1); -1 par 0, 1, 2, ... 9 jusqu'à ce que tu trouve un flux.
mercredi 7 février 2007 à 11:38:30 | Re : [OpenCV] Récuperer le flux video d'une camera

jimnastiq

Merci pour ta réponse mais ce ne fonctionne pas!

d'ailleurs '-1' devrait fonctionner car cj'ai lu qu'avec une seul camera cela fonctionne ...

sinon penses tu que c'est un probleme de driver avec la camera, ou un probleme de compatibilité openCV-camera?
mercredi 7 février 2007 à 11:49:33 | Re : [OpenCV] Récuperer le flux video d'une camera

jimnastiq

j'ajoute tout de meme qu'avec certaine valeurs avant de m'afficher une fenetre grise on me demande de selectionner ma source video avec dans la liste ma camera! donc il l'a reconnait non?
mercredi 7 février 2007 à 11:56:18 | Re : [OpenCV] Récuperer le flux video d'une camera

turnerom

Ok, mais question bete, tu arrive à l'afficher correctement avec windows (si tu l'ouvre avec l'application livré avec)?
mercredi 7 février 2007 à 13:18:52 | Re : [OpenCV] Récuperer le flux video d'une camera

jimnastiq

oui sous msn et sous studio 10 la camera fonctionne! une idée du probleme?
mercredi 7 février 2007 à 14:07:56 | Re : [OpenCV] Récuperer le flux video d'une camera

turnerom

Essaye avec ce bout de code qui marche chez moi ( en faisant varier la valuer de cvCaptureFromCAM(0);) ps : laisse appuyé sur la touche 'c' pour acquérir la vidéo _________________________________________________________________ // C++ includes. #include // OpenCV includes. #include #include void printCamResolution(CvCapture* camera) { std::cout << std::endl; std::cout << "Camera Capture Resolution:" << std::endl; std::cout << "=================" << std::endl; std::cout << "Video width: " << cvGetCaptureProperty( camera, CV_CAP_PROP_FRAME_WIDTH) << std::endl; std::cout << "Video height: " << cvGetCaptureProperty( camera, CV_CAP_PROP_FRAME_HEIGHT) << std::endl; std::cout << std::endl; } int main(int argc, char* argv[]) { // Tell OpenCV to capture data from a camera. CvCapture* camera = cvCaptureFromCAM(0); // Print the camera's properties. printCamResolution(camera); // Create a window with the given name (displayed at the top of the // window). Also, we'll make it automatically resize to whatever content // it displays. cvNamedWindow("My Window", CV_WINDOW_AUTOSIZE); // Loop forever until the user quits. while(1) { // This will return the code of the pressed key or -1 if // nothing was pressed before 10 ms elapsed. int keyCode = cvWaitKey(10); if ('c' == (char)keyCode) { // The user pressed 'c' (for 'capture'). // Get the latest image from the camera. This // image should NOT be released manually. IplImage* image = cvQueryFrame(camera); // Make the image show up in the named window. cvShowImage("My Window", image); // Save the image to a file. static int imageCount = 0; char filename[32]; sprintf(filename, "image%d.png", imageCount); cvSaveImage(filename, image); ++imageCount; } else if(keyCode >= 0) { // A non-capture key was pressed, so end the loop. break; } } // Destroy the capture object and the window. cvReleaseCapture(&camera); cvDestroyWindow("My Window"); return 0; }
mercredi 7 février 2007 à 14:38:16 | Re : [OpenCV] Récuperer le flux video d'une camera

jimnastiq

j'ai testé mais toujours pareil il me demande la source video je selectionne la cam et une fentre grise s'affiche, puis quand j'appui sur 'c' message d'erreur NULL pointer.....

je commence a croire que la cam ne fonctionne pas avec OpenCV
mercredi 7 février 2007 à 15:14:15 | Re : [OpenCV] Récuperer le flux video d'une camera

jimnastiq

j'ai de nouvelles infos qui peuvent peut etre eclairer ta lanterne !

j'ai testé les differents algos avec une webcam "classique"(Logitech) et cela fonctionne donc je  le probleme viens de ma cam ou de la carte d'acquisition!je sais que ma cam fournit du PAL , crois tu que cela peut  etre la cause des problemes recontrés?
jeudi 8 février 2007 à 09:23:44 | Re : [OpenCV] Récuperer le flux video d'une camera

jimnastiq

avec ce code cela fonctionne... donc openCV peut fonctionner avec ma cam mais maintenant je me demande pourquoi cela marche avec ce code et pas avec le précédent! et je me demande comment recuperer les trales avec le code qui fonctionne...


#include "cvcam.h"
#include "highgui.h"



int ShowCamVideo(HWND hwnd, int width, int height)
{
    VidFormat vidFmt={ width, height, 30.0};

    int ncams = cvcamGetCamerasCount( );
    cvcamSetProperty(0, CVCAM_PROP_ENABLE, CVCAMTRUE);
    cvcamSetProperty(0, CVCAM_PROP_CALLBACK,0);
    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 )
{
    cvNamedWindow("cvcam window", CV_WINDOW_AUTOSIZE);
    if( ShowCamVideo((HWND)cvGetWindowHandle("cvcam window"), 640, 480) )
    {
        cvWaitKey(0);
        cvcamStop();
    }
    cvcamExit();
}


1 2

Cette discussion est classée dans : int, flux, video, capture, cv


Répondre à ce message

Sujets en rapport avec ce message

Capture d'un flux video sur un réseau local [ par tylerssc ] Salut à tous, Nous commencons actuellement un projet qui dans l'ensemble nous permettra de gérer un système de video surveillance avec possibilité de capture video d'un écran [ par micke_II ] Bonjour à tous!Je voudrais capturer mon écran, mais en video (certainement comme le font ce qui mettent des videos sur CS). Est-ce que quelqu'un conna Capture video DV vers AVI [ par francois33 ] Bonjour Je cherche a faire la capture d'une video provenant d'une camera DV et a l'enregistrer sous forme de fichier AVI Capture de video avec OpenCV [ par Snake56700 ] Bonjour,J'ai fais un programme a l'aide d'openCV qui permet de récupérer le flux video d'une webcam labtec et de l'afficher dans une fenêtre, celui-ci capture de flux d une camera IP et detecttion d intrusion physique en c++ [ par mannatheking ] voilà j ai un projet de fin d'etude qui s intitule capture de flux video d une camera IP et detection d intusion en C++ sur windows.pour le moment je ATI Rage Theater Video Capture [ par satan_666 ] Bonjour, j'ai une carte video ATI ALL-IN-WONDER 9600 SE (Caméra est connecter RCA) et j'aimerais faire l'aquisition video avec un programme en C++. J' capture de flux via RS232 [ par iraclus ] j'ai un petit soussi je ne sais pas capturer un flux afin de l'etudier en mettant par exemple les bytes choisie dans un tableau afin de les exploiter capture de flux via RS232 [ par iraclus ] bonjour a tous j'ai un soussi pour capturer un flux via rs232 afin de l'analiser et d'utiliser les bytes capturer pour les mettres dans un programme d Capture flux video Camera AXIS 215 PTZ [ par punisher83 ] Bonjour à tous,voilà j'ai un problème, je travaille sur une camera axis et je n'arrive pas à capturer le flux de ma caméra sous Qt, pour le moment j'a openCV : Modifier la Résolution d'un flux video Webcam [ par Daemonight ] Bonjour à tous,afin de travailler sur un projet de Stereo Vision avec openCV, je souhaiterai savoir s'il est possible de modifier la taille (résolutio


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 9,500 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales