comment accéder à une caméra ip (compro IP50W) en utilisant OpenCV 2.1 dans Visual C ++ 2010 ou 2008

CvCapture* cam = cvCaptureFromFile("http:\\192.168.0.77"); IplImage* img; img = cvQueryFrame(cam); IplImage* current = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1); IplImage* comResult = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1); double cam_w = cvGetCaptureProperty(cam, CV_CAP_PROP_FRAME_WIDTH); double cam_h = cvGetCaptureProperty(cam, CV_CAP_PROP_FRAME_HEIGHT); double fps = 10; 

Lire la documentation :

 CvCapture* cvCaptureFromFile(const char* filename); 

Initialise la capture d’une vidéo à partir d’un fichier. La fonction cvCaptureFromFile () alloue et initialise la structure CvCapture pour la lecture du stream vidéo à partir du fichier spécifié. Les codecs et les formats de fichier pris en charge dépendent de la bibliothèque principale.

Cette fonction lit à partir d’un fichier ! Vous devez avoir une caméra connectée à votre ordinateur pour pouvoir récupérer les frameworks de la caméra.

Cependant , si vous avez compilé OpenCV avec le support ffmpeg, vous pouvez lire un fichier du réseau, mais vous devez spécifier le nom du fichier dans l’URL.

Notez dans le code ci-dessous que le nom du fichier est spécifié à la fin:

 CvCapture* camera = cvCaptureFromFile("http://username:pass@cam_address/axis-cgi/mjpg/video.cgi?resolution=640x480&req_fps=30&.mjpg"); if (!camera) { printf("cvCaptureFromFile failed\n"); exit(1); } 

Toujours tester le retour des fonctions OpenCV. Comment pouvez-vous savoir si la fonction a réussi si vous ne la vérifiez pas, non?!

J’ai trouvé ce site utile pour résoudre ce problème

Il s’agit d’un moyen simple de résoudre le problème de traitement du décodage FFMPEG en C ++ (Windows) et je suis maintenant en mesure de récupérer une image depuis une caméra IP en utilisant highgui.