decide op• Datenarten: any → table
• Aufruf: import fullseye as fs; fs.ledger.mirror_virtual_camera(cam_pose, mirror_plane) -> 'Dict[str, object]' (die Implementierung direkt: import drivedecide; drivedecide.mirror_virtual_camera(cam_pose, mirror_plane) -> 'Dict[str, object]'; aus dem Register: opsdrive.get("mirror_virtual_camera"))
Eine virtuelle Kamera, die das Bild in einem Planspiegel aufnimmt.
cam_pose ist die world→camera-4×4-Matrix (Konvention von render3d.look_at: X_cam = P X, −Z nach vorn). mirror_plane ist (n_x, n_y, n_z, d) (n·X = d).
Rückgabewert (dict):
• reflection: die Spiegelung S (mirror_reflection_matrix).
• pose_mirrored = P·S: Rendert man die reale Szene damit, erhält man genau das Bild, das die reale Kamera durch den Spiegel sieht (bis auf die Pixelposition identisch). Die Determinante des Rotationsteils ist −1 (links-rechts gespiegeltes Koordinatensystem; je nach Renderer kehrt sich die Vorder-/Rückseitenbestimmung von Flächen um).
• pose = F·P·S, F = diag(−1, 1, 1, 1): eine gewöhnliche rechtshändige Kamera (Determinante +1) = die virtuelle Kamera hinter dem Spiegel. Ein damit aufgenommenes Bild ist die Links-rechts-Spiegelung des Spiegelbildes (in Pixeln u' = 2c_x − u). Diese verwenden, wenn ein Rückspiegel als „nach hinten gerichtete Kamera“ behandelt wird (zum Zurückgewinnen des vom Fahrer gesehenen Bildes links-rechts spiegeln).
• eye: Position der virtuellen Kamera S(C) (C = Position der realen Kamera). eye_real: C.
• flip: "x" (spiegelt man x des pose-Bildes, erhält man das Spiegelbild).
Geschlossene Form: S(X) = X − 2(n·X − d)n. Das Bild eines im Spiegel gesehenen Punktes Q liegt bei S(Q) (auf der anderen Seite des Spiegels, im gleichen Abstand zur Spiegelfläche). Gate (Test): Den Punkt M auf dem Spiegel, der Einfallswinkel = Ausfallswinkel erfüllt, numerisch lösen (kürzester Weg nach Fermat) und prüfen, dass C + (|CM| + |MQ|)·unit(M − C) mit S(Q) übereinstimmt.
• 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.
• poc_driving_decisions — py -3.11 examples/poc_driving_decisions.py
table als Eingabe)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
decide)mirror_reflection_matrix · mirror_aim_normal · convex_mirror_fov · mirror_blind_zone · check_sequence_score · signal_phase_plan · signal_state · predict_amber_onset
*Provenance: drivedecide.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.