Gra sterowana kamerą - pomaluj płot

19.05.2013 - Filip Mróz
TrudnośćTrudność

Sprawdzenie instalacji

Pierwszym krokiem podczas pracy z kamerą jest jej poprawna instalacja. Zazwyczaj wystarczy tylko podłączyć kamerę, ponieważ niezbędne sterowniki są już zainstalowane, w przeciwnym przypadku należy postępować zgodnie z instrukcją instalacji. Dobrze jest sprawdzić czy wszystko działa, używając dostarczonego z kamerą programu albo za pomocą małej aplikacji AMCap.

Jeśli kamera działa to pora podłączyć się do niej za pośrednictwem OpenCV. Jest to niezwykle proste i, co ważne, kod jest niezależny od rodzaju używanej kamery czy interfejsu. Tworzymy nowy projekt, nazwijmy go MalowaniePlotu, a następnie dodajemy do niego plik main.cpp. Spróbujmy połączyć się z kamerą i zrobić zdjęcie. Aby tego dokonać, umieśćmy w pliku main.cpp następujący kod:

#include <cstdio>
using namespace std;
 
#include "opencv2/highgui/highgui.hpp"
using namespace cv;
 
VideoCapture kamera;
Mat wyswietlanyObraz;
 
int main(int argc, char * argv[]) {
    kamera.open(0);
    if(!kamera.isOpened()){
        printf("Nie udalo sie zawiazac polaczenia z kamera!\n"); 
        getchar();
    }
    else {
        printf("Kamera podlaczona!\n");
        kamera >> wyswietlanyObraz;
        imshow("Test",wyswietlanyObraz);
        waitKey(0);
    }
    return 0;
}
main.cpp
Gotowy projekt z powyższym testem połączenia OpenCV z kamerą można znaleźć w paczce ze źródłami w katalogu: Wersja_0_Kamera

Program próbuje się połączyć z kamerą o identyfikatorze 0 i informuje o rezultacie. W przypadku sukcesu, do obiektu typu Mat (reprezentującego macierz pikseli) wczytywany jest aktualny obraz z kamery. Klasa VideoCapture zajmuje się całą komunikacją z kamerą, więc jest to tak proste, jak czytanie ze standardowego wejścia. Na koniec wyświetlamy pobrany obraz korzystając z prostego interfejsu graficznego dostarczanego z OpenCV. Końcowa operacja waitKey(0) oczekuje naciśnięcia klawisza i zwraca go, a także pozwala na wyświetlenie obrazu wyswietlanyObraz w oknie "Test". Gdyby użyć getchar(), obraz nie zostałby pokazany.

W przypadku problemów

Jeśli kod się nie kompiluje (np. występują błędy linkera) należy sprawdzić, czy ścieżki do plików biblioteki zostały poprawnie dodane do środowiska, oraz czy odpowiednie biblioteki zostały dodane do projektu (więcej).

Zakładając, że skompilowana wersja OpenCV znajduje się w katalogu C:\OpenCV2.3 i mamy 32 bitowy system wystarczy dodać następujące ścieżki:

  • C:\OpenCV2.3\build\include\ do katalogów z plikami nagłówkowymi
  • C:\OpenCV2.3\build\x86\vc9\lib\ do katalogów z plikami plikami bibliotek

W przypadku błędów podczas uruchomienia, gdy brak pliku opencv_highgui230.dll, należy ten plik skopiować do katalogu z programem, bądź dodać katalog z plikami DLL OpenCV do ścieżki systemowej PATH. W przypadku 32 bitowego systemu i VC9 pliki znajdują się w C:\OpenCV2.3\build\x86\vc9\bin. Jeśli używamy VC++ to trzeba pamiętać, że biblioteki z końcówką "d" są bibliotekami używanymi przy kompilacji "Debug" (do trybu "Release" należy podłączyć pliki bez tej końcówki).

W ten sposób dokończyliśmy sprawdzenie instalacji kamery oraz biblioteki OpenCV.

5
Twoja ocena: Brak Ocena: 5 (2 ocen)

Copyright © 2008-2010 Wrocławski Portal Informatyczny

design: rafalpolito.com