Kubik Napisano Grudzień 9, 2015 Zgłoś Udostępnij Napisano Grudzień 9, 2015 (edytowany) Jestem tutaj nowy, więc witam wszystkich! Jestem raczej początkującym programistą i pracuję teraz nad dość ciekawą, ale nieco przerastającą mnie aplikacją z wykorzystaniem bibliotek OpenCV i OpenGL. Program uruchamia kamerkę internetową, nastepnie dzięki algorytmowi Lucas-Kanade użytkownik zaznacza punkty jakie mają być śledzone i w drugim oknie ma być wyświetlony bardzo prosty szkielet postaci narysowany w OpenGL. Problem polega na tym, że ów algorytm działa w pętli nieskończonej co za chwilę pokażę, a GLUT robi to samo (glutMainLoop();). Dlatego, w zależności od kolejności uruchamiania, działa jedno, albo drugie. Aktualnie mam tylko rysowanie przykładowej figury geometrycznej, a nie całej postaci, ale to nie jest istotne w tym momencie. Kod wygląda następująco: http://wklejaj.pl/moixRqLXjgXX Mógłby mi ktoś podpowiedzieć jak wyjść z tego problemu? Aktualnie szukam różnych rozwiązań, ale jeszcze niczego konkretnego sam nie wymyśliłem... Edytowano Grudzień 9, 2015 przez Kubik Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Madaoo Napisano Grudzień 15, 2015 Zgłoś Udostępnij Napisano Grudzień 15, 2015 Możesz zastosować wątki, jeden będzie obsługiwał proces śledzenia, a drugi rysowania. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Kubik Napisano Grudzień 15, 2015 Autor Zgłoś Udostępnij Napisano Grudzień 15, 2015 Teoretycznie tak, ale nie mam o tym bladego pojęcia. Natknąłem się na bibliotekę FreeGLUT i jej funkcję glutMainLoopEvents(), która powinna pozwalać na przerwanie głównej pętli OpenGL. I tutaj mam pytanie do osób, które kiedyś pracowały na tej bibliotece: będzie możliwe umieszczenie kodu OpenGL z tą funkcją w głównej pętli mojego programu (czyli tej for(;;)) tak aby przy każdym jej przejściu wykonywało się jedno przejście GLUT'a? Narazie nie mogę tego przetestować samodzielnie, ponieważ nie mogę uruchomić FreeGLUT'a, jakieś błędy z linkowaniem lub czymś podobnym... Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.