OpenCV et camera IP

Messages postés
9
Date d'inscription
vendredi 9 décembre 2011
Statut
Membre
Dernière intervention
13 décembre 2011
- - Dernière réponse : wafafolla
Messages postés
10
Date d'inscription
mercredi 14 juillet 2010
Statut
Membre
Dernière intervention
21 mai 2012
- 21 mars 2012 à 11:39
Salut
Voila j’ai un projet de fin d’étude sur les camera IP avec OpenCV ,d’abord je doit faire l’acquisition d’une vidéo a partir de ma camera IP (Foscam FI8918w) puis faire de traitement d’image pour la détection et le suivi d’un objet ( des humains en mouvement).
Personnellement je suis bloqué sur la première étape de l’acquisition et je peut rien faire sans dépasser cette étape alors PLZ aidé moi.
Ma question est comment faire l’acquisition du vidéo a partir de Foscam FI8918w en utilisant OpenCV comme outil ?
Afficher la suite 

12 réponses

Meilleure réponse
Messages postés
9
Date d'inscription
vendredi 9 décembre 2011
Statut
Membre
Dernière intervention
13 décembre 2011
1
1
Merci
Salut
Voila jai un projet de fin d étude sur les camera IP avec OpenCV ,d abord je doit faire l acquisition d une vidéo a partir de ma camera IP (Foscam FI8918w) puis faire de traitement d image pour la détection et le suivi d un objet ( des humains en mouvement).
Personnellement je suis bloqué sur la première étape de l acquisition et je peut rien faire sans dépasser cette étape alors PLZ aidé moi.
Ma question est comment faire l acquisition du vidéo a partir de Foscam FI8918w en utilisant OpenCV comme outil ?

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 201 internautes nous ont dit merci ce mois-ci

Commenter la réponse de nolife11
Messages postés
9
Date d'inscription
vendredi 9 décembre 2011
Statut
Membre
Dernière intervention
13 décembre 2011
1
0
Merci
"’" ,c est pas moi qu il a ecrit ,lisez ce message en sautant ces caractères .
Commenter la réponse de nolife11
Messages postés
14681
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
5 décembre 2019
90
0
Merci
Hello,
Déjà, tu dois connaître l'adresse te permettant de récupérer le flux media de la cam (images ou videos). Ensuite, je pense que cette url peut être passé en arguments à la fonction cvCaptureFromFile.


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Commenter la réponse de BunoCS
Messages postés
9
Date d'inscription
vendredi 9 décembre 2011
Statut
Membre
Dernière intervention
13 décembre 2011
1
0
Merci
re
Si par connaitre l'adresse ,tu veu dire l adresse IP du camera ,beh ui je l ai .
Commenter la réponse de nolife11
Messages postés
9
Date d'inscription
vendredi 9 décembre 2011
Statut
Membre
Dernière intervention
13 décembre 2011
1
0
Merci
bon bref , je vais tester ta cde et je te contacterai après , thx.
Commenter la réponse de nolife11
Messages postés
14681
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
5 décembre 2019
90
0
Merci
Ok pour l'ip de la caméra, mais je pensais plutôt à l'adresse du flux media. Un truc du style http://IP_CAM/video.mpg


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Commenter la réponse de BunoCS
Messages postés
9
Date d'inscription
vendredi 9 décembre 2011
Statut
Membre
Dernière intervention
13 décembre 2011
1
0
Merci
arf , jai testé la cde avec l'addresse IP mais ca marche pas et l'addresse de flud media je ne le connai pa .
pfff,je desespere la
Commenter la réponse de nolife11
Messages postés
14681
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
5 décembre 2019
90
0
Merci
[...]et l'addresse de flud media je ne le connai pa .

Il va être difficile d'avancer si tu n'as pas cette adresse... Renseigne toi à ce propos.

@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Commenter la réponse de BunoCS
Messages postés
792
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
12 juillet 2019
7
0
Merci
Bonjour,

As-tu déjà fait une recheche avec notre ami google , car voici ce qu'on trouve avec "opencv ipcamera" :
http://stackoverflow.com/questions/712998/opencv-with-network-cameras

louis
Commenter la réponse de cs_louis14
Messages postés
9
Date d'inscription
vendredi 9 décembre 2011
Statut
Membre
Dernière intervention
13 décembre 2011
1
0
Merci
Oui,j'ai deja vu cette page web et j ai testé le programme mais ca na pa marcher .
mnt ,je suis sur une autre piste ,jai vu que pr acceder a une IP cam ,fauderai utiliser une autre librery (netsocket).
ce qui ma permet de me lancer sur cette piste c'est ce message que je lai lu et copier d'un autre forum :
-------------------------------------------------------------------------
Bonjour,
hé bien heureusement qu'il y a les alertes mail, parce qu'il ne date pas d'hier ce sujet.

La piste de la bibliothèque "livemedia" que j'évoquais plus haut fonctionnait bien en mode RTSP de la caméra, mais pour les caméras Axis il s'est avéré bien plus simple et efficace d'utiliser le protocole HTTP directement. Je ne peux malheureusement pas te donner le code pour des raisons de confidentialité, mais voici une petite explication rédigée par la personne qui a fait notre composant de connexion à ces caméras :



Citation :



? Connexion Http / Lecture du flux

On se connecte par socket sur l'ip de la camera avec le port 80 (port http).
Pour recevoir le flux mjpeg, il suffit de faire la requête suivante

GET /mjpg/video.mjpg HTTP/1.0
Host: [192.168.0.211]
[Authorization: Basic xxxxyyyxxxyyy]

Il faut adapter les informations entre crochets à la camera courante. La partie concernant l'autentification est optionelle (si la camera est protégée par un login/mot de passe). La partie non lisible suivante « Basic » est un encodage en Base64 du login et du mot de passe séparés par « : »

? Contenu du flux

Le flux Mjpeg à travers Http est une suite d'image Jpeg séparées par des entêtes.
Techniquement, la fin d'une entête peut être repérée par le caractère 0xFF, l'image commençant tout de suite après.
Chaque entête contient la taille de l'image, de façon non standardisée. Dans les cameras testées, elle était présente suivant les façons suivantes :
Content-Length: 32768
DataLen: 32768

Pour chaque image on cherchera donc la taille X de l'image dans l'entête, puis on iras à la fin de l'entête, puis on lira les X octets de l'image.
On obtient donc l'image Jpeg stockée dans un buffer. Il suffit ensuite de la décompresser pour obtenir une image RGB brute.
Commenter la réponse de nolife11
Messages postés
9
Date d'inscription
vendredi 9 décembre 2011
Statut
Membre
Dernière intervention
13 décembre 2011
1
0
Merci
slut all,
-c bon ,jai su le flux de media de ma camera:
http:///videostream.cgi pour la video
http:///snapshot.cgi pour l'image
-le souci ke jai mnt c'est que je sait pa comment recuperer l'image/video de ces addresse par le visual c++ .
-jai essay les instructions suivante de l'OpenCV mai ca a pas marcher.
cvCaptureFromFile("http:///videostream.cgi"); pour la video
cvLoadImage("http:///snapshot.cgi"); pour l'image
Commenter la réponse de nolife11
Messages postés
10
Date d'inscription
mercredi 14 juillet 2010
Statut
Membre
Dernière intervention
21 mai 2012
0
Merci
salut ,
je suis entrain de réaliser un projet de fin d'étude similaire à la vôtre, mais sous unix, j'utilise Opencv et QT .
pour le moment j'ai réussi à visualiser le flux vidéo de la caméra ip locale, mais avec une adresse ip distante le même code ne marche pas ,j'ai essayé avec plusieurs adresse publique mais en vain.
Je vous en prie de m'aider un peu si vous êtes réussi à récupérer le flux vidéo d'une caméra ip distante ( pas dans le meme réseau)

voici le code:
include <stdio.h>
#include "opencv/highgui.h"

int main()
{
// ********************** @IP locale : fonctionne bien
    CvCapture *camera=cvCaptureFromFile("http://root:root@192.168.1.71/axis-cgi/mjpg/video.cgi?.mjpg");

//************************ @ IP distante ne merche pas    
CvCapture *camera = cvCaptureFromFile("http://root:root@41.225.15.226:8001/axis-cgi/mjpg/video.cgi?resolution=640x480&req_fps=30&.mjpg");

//CvCapture *camera=cvCaptureFromFile("http://202.212.193.26:555/nphMotionJpeg?Resolution=640x480&Quality=Standard");
// CvCapture *camera=cvCaptureFromFile("http://69.224.130.150/axis-cgi/mjpg/video.cgi?.mjpg");
    /**********************************************************************************************************/
        if (camera==NULL)
           printf("camera is null\n");
        else
           printf("camera is not null");

      cvNamedWindow("img");
      while (cvWaitKey(10)!=atoi("q")){
                //IplImage *img=cvLoadImage("image.jpg");

        double t1=(double)cvGetTickCount();
        IplImage *img=cvQueryFrame(camera);
        double t2=(double)cvGetTickCount();
        printf("time: %gms  fps: %.2g\n",(t2-t1)/(cvGetTickFrequency()*1000.), 1000./((t2-t1)/(cvGetTickFrequency()*1000.)));
        cvShowImage("img",img);
    }
   // cvReleaseCapture(&camera);
}


je vous remercie d'avance
Commenter la réponse de wafafolla