[OpenCV] Pobranie rzeczywistej(terazniejszej) klatki z kamery
Ostatnio zmodyfikowano 2012-11-10 17:10
matka5432 Temat założony przez niniejszego użytkownika |
[OpenCV] Pobranie rzeczywistej(terazniejszej) klatki z kamery » 2012-11-10 15:27:31 Witam, mam taki problem z pobieraniem klatek w OpenCV. Aby wytlumaczyc moj problem posluze sie tym kodem: #include <highgui.h> int main() { IplImage * img; CvCapture * capture = cvCaptureFromCAM( 0 ); while( 1 ) { cvGrabFrame( capture ); img = cvRetrieveFrame( capture ); cvShowImage( "View", img ); cvWaitKey( 1 ); } }
Kod po skompilowaniu wyswietla w oknie "Viev" Pierwsza pobrana klatke z kamery (np zdjecie sciany), do tej pory moze sie wydawac, ze wszystko jest w porzadku. Jezelii teraz dam przed kamere reke i klikne jakis klawisz, powinna pojawic sie zdjecie reki, lecz pojawia sie dopiero w 5 klatce. Nie jestem pewien czemu tak sie dzieje, ale wydaje mi sie, ze w moemencie, w ktorym teoretycznie jest wszystko dobrze program pobiera od razu 5 klatek. Jezeli petla dziala bez opoznienia (pokazuj klatke dopoki nie zostanie wcisniety dowolny klawisz) to w oknie "Viev" jest wyswietlany normalny obraz z kamery, ale z opoznieniem 0,2 sek. poniewaz kamera wysyla 25 klatek na sek. a 5 klatek to 0,2 sekundy ;]. Da sie zrobic cos, aby program pobieral rzeczywisty obraz z kamery? chocby w powyzszym programie, zeby po kliknieciu dowolnego klawisza zostal wyswitlony obraz terazniejszy ? Z gory dziekuje. |
|
DejaVu |
» 2012-11-10 16:11:07 Sprawdź jakiś istniejący program czy wyświetla obraz z kamerki w czasie rzeczywistym. Bardzo możliwe, że są to ograniczenia sprzętowe kamery i tego nie przeskoczysz. |
|
matka5432 Temat założony przez niniejszego użytkownika |
» 2012-11-10 16:26:35 Moze i to przez kamerke, ale w programie, ktory napisalem na pewno nie jest to wywalane ograniczeniami kamerki. Moze nie wyrazilem sie jasno. Sproboje inaczej. Moj program po kliknieciu na dowolny klawisz powinien pobrac klatke z kamerki - zrobic zdjecie. A dzieje sie cos takiego: po skompilowaniu program pobiera i zapisuje dokladnie 5 klatek: pierwsza druga trzecia czwarta piata (minelo jakies 0,2 sec.)
i teraz sobie czeka az klikne dowolny klawisz, jezeli klikne:
pokazuje pierwsza klatke pobiera i zapisuje szostka
znowu czeka az klikne, jezeli tak sie stanie:
pokazuje druga pobiera i zapisuje siodma
widac to opznienie ? dlaczego nie pokaze od razu siodmej
jezeli program wyswietla obraz rzeczywisty z kamerki dzieje sie dokladnie to samo, tyle ze zamiast czekac na klikniecie klawisza przez usera, program czeka 0,04 sec, a opoznienie wynosi 5 klatek, czyli 0,2 sec 0,04 * 5 = 0,2 |
|
DejaVu |
» 2012-11-10 16:34:31 Może drivery buforują klatki? Trudno powiedzieć... |
|
DejaVu |
» 2012-11-10 16:39:50 |
|
matka5432 Temat założony przez niniejszego użytkownika |
» 2012-11-10 17:10:38 Z tego co zrozumialem to nie da rady nic z tym zrobic ? jedynie wczytac 5 klatek i pokazac nastepnaa. Ale to niestety nie przyspieszy niczego ;/ |
|
« 1 » |