
Bubbles - Ein Spiel mit OpenCV
23. Jan 2010, 22:58
Aus einer Idee heraus habe ich gestern angefangen ein Spiel zu schreiben. Man wird von einer Webcam gefilmt und muss mit Bewegungen virtuelle Blasen zum Platzen bringen indem man sie berührt.
Das Spiel ist in C++ geschrieben und baut auf der OpenCV-Bibliothek auf. Eine Bewegung identifiziere ich als Unterschied zwischen zwei aufeinander folgenden Bildern. Da die Differenz durch Rauschen teilweise ziemlich heftig ausfällt, wird er geschwellwertet. Diesen Schwellwert kann man im Programm ändern. Ist der Schwellwert zu niedrig, wird das Bild durch Rauschen gestört und es platzen auch Blasen die man eigentlich nicht berührt hat. Ist der Schwellwert im anderen Fall zu hoch, wird nicht jede Bewegung erkannt und nicht jede berührte Blase verschwindet. Ein Differenzbild sieht bei geeignetem Schwellwert in etwa wie im Bild rechts aus.
Heute habe ich mich dann daran gemacht das Spiel zu vervollständigen, damit es auch andere Spielen können. Es gibt jetzt eine Highscore und die Konfiguration kann auch gespeichert werden. Eine Vorschau des Spiels kann man in folgendem Video sehen:
Je weiter der Spieler von der Kamera entfernt ist, desto schwieriger wird es die Blasen zu fangen. Spielt man in einer Gruppe, sollte eine Grenze definiert werden, bis zu der die Spieler an die Kamera gehen dürfen.
Wer Anregungen hat das Spiel zu verbessern oder zu erweitern, kann sich gern bei mir melden. Videos von euren versuchen würden mich natürlich auch interessieren, gegebenenfalls würde ich sie auch veröffentlichen.
Also viel Spass beim Spielen!