marker_direction — DRIVE balltrack op

• Datenarten: keine → signal (ein Operator, der allein durch seine Argumente bestimmt ist — er nimmt kein Bild und keine Daten entgegen)

• Aufruf: import fullseye as fs; fs.ledger.marker_direction(marker_uv, center_uv, radius_px, K=None) -> 'np.ndarray' (die Implementierung direkt: import balltrack; balltrack.marker_direction(marker_uv, center_uv, radius_px, K=None) -> 'np.ndarray'; aus dem Register: opsdrive.get("marker_direction"))

Verwendung

Position einer Markierung im Bild (col, row) → Richtung auf der Kugel (Einheitsvektor im Kamerasystem, vordere Halbkugel: x rechts, y oben, z zum Betrachter).

Wird K (3, 3) übergeben, wird exakt perspektivisch gelöst: aus dem Winkelradius der Kugel α = atan(Radius px / f) werden die Entfernung zum Mittelpunkt (1/sin α bei Radius 1) und der Sehstrahl zum Mittelpunkt bestimmt, die Sehstrahlen der Musterpixel mit der Kugeloberfläche geschnitten und die Normalen an den Schnittpunkten zurückgegeben. ★Ohne K wird die Scheibe als Orthogonalprojektion betrachtet und die Antwort in einem System gegeben, dessen z der Sehstrahl durch den Mittelpunkt ist —— liegt die Kugel abseits der optischen Achse, dreht sich das ganze System, und in Aufnahmen einer bewegten Kugel wird die Änderung des Sehstrahls unmittelbar zu scheinbarer Rotation (bei einer Kugel, die in 0.6 m Entfernung mit 6 m/s quert, dreht sich der Sehstrahl in 1 ms um 0.01 rad, was die Rotation von 0.15 rad pro Bild um 7 % erhöhte. 2026-09-30, Nahkamera von PoC ㉔). Ohne K wie bisher.

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• poc_ball_bounce — py -3.11 examples/poc_ball_bounce.py

• poc_table_tennis_bounce — py -3.11 examples/poc_table_tennis_bounce.py

• poc_table_tennis_spin — py -3.11 examples/poc_table_tennis_spin.py

Typkompatible Folge-Operatoren (nehmen signal als Eingabe)

flight_vacuum · magnus_lift_coefficient · drag_coefficient_sphere · restitution_from_apexes · restitution_from_intervals · fit_parabola · flight_fit · fit_aero

Gleiche Kategorie (balltrack)

ball_detect · ball_track · kalman_ca · triangulate_dlt · track_triangulate · bounce_detect · spin_from_markers · spin_from_marker_sequence


*Provenance: balltrack.py — DRIVE Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.