Open CV Camera
-
Hi Leute,
hoffe ihr könnt mir bei folgendem kleinen Problem weiterhelfen:
Ich möchte mit OpenCV einfach ein Videobild von meiner Webcam in einem Fenster anzeigen lassen und wenn man die Taste a drückt soll sich das Programm beenden. Das funktioniert auch, nur passiert es oft, dass sich das Programm ohne Tastendruck nach unterschiedlichen Zeiten von selbst beendet... Ist das ein Problem meiner Programmierung oder etwas anderes? Arbeite unter Ubuntu.
Hier mein Sourcecode:cvNamedWindow( "video-basics", CV_WINDOW_AUTOSIZE ); CvCapture* capture = cvCreateCameraCapture(0); IplImage* frame; while(1) { frame = cvQueryFrame( capture ); if( !frame ) break; cvShowImage( "video-basics", frame ); char c = cvWaitKey(33); if( c == 'a' ) break; }
Vielen Dank schonmal für eure Hilfe!
munich
-
Teilweise bekomme ich Fehlermeldungen, wie:
Corrupt JPEG data: 35 extraneous bytes before marker 0xd2
oder
Corrupt JPEG data: 8 extraneous bytes before marker 0xd9
in der Konsole.
Hoffe ihr könnt mir helfen das Problem zu lösen!
Danke!
-
Hat niemand eine Idee, woran das liegen könnte?
Bin für jede Idee dankbar!
-
cvNamedWindow( "video-basics", CV_WINDOW_AUTOSIZE ); CvCapture* capture = cvCreateCameraCapture(0); IplImage* frame; // *1* while(1) { frame = cvQueryFrame( capture ); // *2* if( !frame ) break; cvShowImage( "video-basics", frame ); // *3* char c = cvWaitKey(33); if( c == 'a' ) break; }
Ich kenn mich mit openCV nicht aus ... rate daher mal aufgrund dessen was du gepostet hast:
du machst dir nen Pointer ohne Speicher zu holen *1* und stopfst den in ne Funktion rein *2* die ihn (eventuell) mit Daten füllt. Wenn die ihn nicht füllst loopsts du ... wenn da was drin steht zeigste das an *3*
Ich kann ja noch nachvollziehen das *2* eigenen Speicher holt ... ich glaube aber nicht das die auch (beim n+1'ten Durchgang) erst den schon geholten Speicher freigibt und dann wieder neu holt (oder ihn wieder verwendet ...).
Ich vermute da mal ein Speicherleck der größeren Art. Lies die Doku und teste das mal.
-
Vielen Dank für deine Antwort! Ich hab das aus nem Tutorial abgekupfert, um einfach mal zu sehen, ob mein OpenCV läuft. Ich werde mal versuchen das ganze zu verbessern.
Wie würdest du es abändern?
Danke!
-
Ich würde das so abändern das ich mir mal die API von OpenCV schnappe, gucke was das Zeug macht (und es nicht irgendwo abschreibe) und dann hinterher schlauer bin
Da ich aber genug anders um die Ohren habe und nicht für die openCV API lernen werde wirst du von mir auch keinen funktionsfähigen Code bekommen, sorry.
-
könnt ihr mir verraten wie ihr opencv mit eurem builder gekoppelt habt?