Sto provando a creare un video avi dall'uscita della mia webcam usando opencv. Non vengono generate eccezioni, tuttavia il file avi che crea ha una dimensione di 414 byte e non cresce.opencv scrive l'uscita della webcam nel file avi
Inoltre, non funzionerà con nessun lettore multimediale. Sospetto che ci sia qualcosa di sbagliato nella scrittura del file.
Ecco il codice:
CvCapture *capture = cvCaptureFromCAM(0);
int width = (int)cvGetCaptureProperty(capture,
CV_CAP_PROP_FRAME_WIDTH);
int height = (int)cvGetCaptureProperty(capture,
CV_CAP_PROP_FRAME_HEIGHT);
CvVideoWriter *writer = cvCreateVideoWriter("CamCapture.avi",
-1,30, cvSize( width, height));
cvNamedWindow("capWindow", CV_WINDOW_AUTOSIZE);
IplImage *frame = 0;
// this returns 0 not sure why ??
//double fps = cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);
double fps = 30;
while(1)
{
frame = cvQueryFrame(capture);
cvShowImage("capWindow",frame);
cvWriteFrame(writer, frame);
char c = cvWaitKey(1000/fps);
if(c == 27) break;
}
cvReleaseCapture(&capture);
cvReleaseVideoWriter(&writer);
cvDestroyWindow("capWindow");
ho fatto riferimento e ha cercato i seguenti campioni senza fortuna:
- http://gipetrou.com/scc/2010/12/12/save-video-from-webcam-with-opencv-2-1/
- http://answers.oreilly.com/topic/1366-how-to-write-to-an-avi-file-with-opencv/
- https://www.cs.utexas.edu/~teammco/misc/udp_video/
Il codice sopra riportato produce un video riprodotto in tempo reale? Vedo che hai fissato il video a 10 FPS, mentre molte webcam consentono 30 FPS per la registrazione? –
Puoi cambiarlo in 25 o 30 ... – Haris
Lo sto testando ora e, dato che la mia fotocamera è economica, non offre una frequenza fotogrammi costante in diverse impostazioni di illuminazione. Per esempio. gli ambienti luminosi danno fps trip come quelli più scuri. E così il video verrà riprodotto più velocemente o più lentamente del previsto se la scena sta cambiando. Grazie per la risposta veloce comunque :) –