Table of Contents

Bestimmung der Positionen der LED

Grundidee:

Mathematische Knacknüsse

Bildkoordinaten -> Raumkoordinaten

Wir nehmen vereinfachend an, dass die Ebene $B$ unverzerrt von der Webcam abgebildet wird (bis auf Drehung und Streckung). Das stimmt ziemlich gut, wenn die Kamera horizontal gerade aus schaut (d.h. nicht nach oben oder unten). Und die Kameralinse sollte verzerrungsfrei abbilden, was an den Bildrändern wohl eher nicht stimmt.

Gegebene Grössen: Räumlicher Punkt $K$, Bildkoordinaten von $O$, $S$ und $L_0$ (Bildkoordinaten der LED).

Gesuchte Grössen: Räumlicher Punkt $L$ auf der Ebene $B$. Damit ist die Parameterdarstellung der Geraden, auf der die LED liegt $\vec{OK}+t \cdot \vec{KL}$.

Umsetzung in Python: https://github.com/techlabksbg/xmastree/blob/main/other/spatial-recognition/main.py

Nächster Punkt zu zwei Geraden

Gegebene Grössen: Punkte $K_1$, $L_1$ und $K_2$, $L_2$.

Gesuchte Grössen: Punkt $P$, der am nächsten bei $K_1L_1$ und $K_2L_2$ liegt.

Umsetzung in Python: https://github.com/techlabksbg/xmastree/blob/main/other/spatial-recognition/compute.py

Tafelbild zu den beiden obigen Problemen

Animation auf dem Baum

Gegebene Grössen: Raumkoordinaten $P$ einer LED, Zeit $t$ in Sekunden.

Gesuchte Grössen: Farbe von $P$ (in RGB oder HSV).