/Lightbeats

http://www.lightbeats.cz/

Primary LanguageProcessing

Lightbeats

Lightbeats je aplikace napsaná v Processingu pro tracking svítících žonglovacích míčků webkamerou a vizualizaci jejich trajektorií.

Dokumentace pro uživatele

Instalace

Pro spuštění Lightbeats je potřeba Processing. Projekt využívá knihovny JMyron, ControlP5 a CL-Eye SDK, pro jejich instalaci se řiďte instrukcemi na jejich stránkách, případně využijte připravené knihovny ve složce libraries (složku překopírujte do složky Dokumenty/Processing/). Knihovna CL-Eye je komerční, pro použití programu s kamerou PS3Eye je nutné zakoupit driver a SDK na oficiálním webu.

Spuštění

Otevřete lightbeats.pde v Processingu a spustťe. Aplikace vyžaduje připojenou webkameru. Pro nejlepší výsledky program používejte v temném prostředí. Lightbeats má dva základní pohledy. Debug mód, který je přizpůsobený pro nastavení kamery a ladění parametrů pro hledání míčků, a prezentační mód, ve kterém se trackované míčky vizualizují. Ve výchozím nastavení je po spuštění programu zapnut debug mód. Do prezentačního módu lze přepnout stisknutím klávesy D.

Základní nastavení

Nastavit aplikaci je možné pouze při zapnutém debug módu. V levém horním rohu obrazovky se nachází tlačítka pro přepínání jednotlivých záložek nastavení. Pro základní nastavení aplikace stačí měnit nastavení v kategorii camera settings, případně v other. Pod přepínačem záložek se nachází také tlačítko pro uložení aktuálního nastavení.

Podrobnější popis nastavení naleznete v dokumentaci

Klávesové zkratky

  • ESC: Ukončení programu.
  • D: Zapnutí/vypnutí debug módu. Vhodné pro kalibraci při prvním použití.
  • C: Zapnutí/vypnutí nahrávání obrazovky. Snímky jsou ukládány ve formátu tga do složky frames/.
  • Mezerník: Uložení aktuálního snímku.

Dokumentace pro programátory

Příprava prostředí

Program stačí nainstalovat pro spuštění (viz Dokumentace pro uživatele - Instalace), další příprava pro úpravu kódu není potřeba.

Struktura kódu

Program na každé zavolání draw() funkce získá seznam globů z instance třídy Myron (myron.pde). Ten pak program předává instanci třídy Balls (balls.pde), která jednotlivé globy identifikuje a zařadí již jako State (state.pde) do správných Ball (ball.pde). Třída Finder (finder.pde) obsahuje algoritmus pro přesné hledání kružnic pomocí pixelových hranic globů, nalezené kružnice se využívají v Balls při třídění.

Po třídění následuje vizualizace instancí třídy Renderer (renderer.pde).

Podrobnější popis algoritmu naleznete v dokumentaci

Screenshoty!

Animace z Lightbeats

Screenshot z debug módu

Screenshot vizualizace stop míčků