Ich möchte eine einfache Anwendung in openCV erstellen, die Video von der Kamera erfasst und in einer Datei speichert. Das Problem ist:OpenCV, Aufnahme von der Kamera und Speichern in Datei
1- wie auf die Bildrate meiner Kamera zugreifen. cvGetCaptureProperty() gibt immer einen FPS-Wert von Null zurück.
2-, wie die Zeit zu steuern, in dem die Einnahme bitte, dh wie nimmt die Aufnahmezeit auf 10 Sekunden zum Beispiel ...
hier ist mein Code
void main(){
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("myCamCapture.avi", -1, 30, cvSize(width, height));
cvNamedWindow("d", CV_WINDOW_AUTOSIZE);
IplImage *frame = 0;
while(1)
{
frame = cvQueryFrame(capture);
cvShowImage("d",frame);
cvWriteFrame(writer, frame);
char c = cvWaitKey(30);
if(c == 27) break;
}
}
danken zu begrenzen in Ihnen voraus
wenn ich die Zeile Code schreiben Sie schrieben i fps = 0 Hinweis bekommen, dass ich von einer Kamera bin Erfassung .... und schaut auf meinem Post-Update um den Code zu sehen Ich versuche –
die auszuführen Die resultierende Datei hat eine höhere Bildrate als die, die ich auf der Kamera –
gesehen habe. Dies ist möglich, während ein Teil der Quellframes mehrfach gespeichert wird. Aber da die Komprimierung dies kompensiert, sollten Sie keine Nachteile haben. – Atmocreations