OpenCV et camera IP

Signaler
Messages postés
9
Date d'inscription
vendredi 9 décembre 2011
Statut
Membre
Dernière intervention
13 décembre 2011
-
Messages postés
10
Date d'inscription
mercredi 14 juillet 2010
Statut
Membre
Dernière intervention
21 mai 2012
-
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 ?

12 réponses

Messages postés
9
Date d'inscription
vendredi 9 décembre 2011
Statut
Membre
Dernière intervention
13 décembre 2011
1
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 ?
Messages postés
9
Date d'inscription
vendredi 9 décembre 2011
Statut
Membre
Dernière intervention
13 décembre 2011
1
"’" ,c est pas moi qu il a ecrit ,lisez ce message en sautant ces caractères .
Messages postés
14780
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
4 août 2020
92
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...
Messages postés
9
Date d'inscription
vendredi 9 décembre 2011
Statut
Membre
Dernière intervention
13 décembre 2011
1
re
Si par connaitre l'adresse ,tu veu dire l adresse IP du camera ,beh ui je l ai .
Messages postés
9
Date d'inscription
vendredi 9 décembre 2011
Statut
Membre
Dernière intervention
13 décembre 2011
1
bon bref , je vais tester ta cde et je te contacterai après , thx.
Messages postés
14780
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
4 août 2020
92
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...
Messages postés
9
Date d'inscription
vendredi 9 décembre 2011
Statut
Membre
Dernière intervention
13 décembre 2011
1
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
Messages postés
14780
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
4 août 2020
92
[...]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...
Messages postés
792
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
12 juillet 2019
8
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
Messages postés
9
Date d'inscription
vendredi 9 décembre 2011
Statut
Membre
Dernière intervention
13 décembre 2011
1
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.
Messages postés
9
Date d'inscription
vendredi 9 décembre 2011
Statut
Membre
Dernière intervention
13 décembre 2011
1
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
Messages postés
10
Date d'inscription
mercredi 14 juillet 2010
Statut
Membre
Dernière intervention
21 mai 2012

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