Ho letto molti, molti thread sulle immagini in streaming su IP in OpenCV 2.3.1, ma non riesco ancora a far funzionare il mio programma.c, opencv - accesso alla videocamera JPG image over ip
Ho scaricato IP Webcam per Android da https://market.android.com/details?id=com.pas.webcam&hl=en e recentemente ho imparato OpenCV per recuperare le immagini dalla fotocamera del mio telefono Android.
Il relativo manuale incorporato ha detto che l'immagine dalla fotocamera del telefono può essere localizzata a http://the.phone.ip.address:8080/shot.jpg. L'ho aperto dal browser più volte e sembra sempre a posto. Ho anche creato OpenCV manualmente, con il supporto FFmpeg.
Finora ho provato
CvCapture* webcam = cvCaptureFromFile("http://192.168.1.220:8080/shot.jpg");
ma restituisce NULL e uscite
[image2 @ 0xd701e0]Could not find codec parameters (Video: mjpeg, yuv420p)
Ho anche provato a sostituire http con RTSP, ma ancora non funziona. Ho anche provato a sostituire l'url con qualche altro URL di immagine (un collegamento diretto a un'immagine casuale di Google Immagini e uno da localhost) e uccide sempre con un segfault.
Ecco la mia sorgente completo
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <cv.h>
#include <highgui.h>
int main(int argc, char* argv[])
{
CvCapture* webcam = cvCaptureFromFile("http://192.168.1.220:8080/shot.jpg");
if(!webcam)
{
fprintf(stderr, "cannot open webcam\n");
return 1;
}
IplImage* img = cvQueryFrame(webcam);
if(!img)
{
fprintf(stderr, "cannot get image\n");
return 1;
}
cvNamedWindow("test", CV_WINDOW_AUTOSIZE);
cvShowImage("test", img);
cvWaitKey(0);
cvReleaseImage(&img);
/**/ cvReleaseCapture(&webcam); /**/
cvDestroyWindow("test");
return 0;
}
OpenCV può davvero leggere le immagini su IP, o mi sto perdendo qualcosa?
hai ricevuto la risposta? – wolvorinePk
Ho provato 'rtsp: //192.168.1.104: 8080/videofeed' ma non sono riuscito. – krzych