tacscalib op• Datenarten: any × any × scalar × scalar → table
• Aufruf: import fullseye as fs; fs.ledger.sphere_normals_known(shape, centre, a_px: 'float', R_px: 'float', inner: 'float' = 1.0) -> 'dict' (die Implementierung direkt: import tacscalib; tacscalib.sphere_normals_known(shape, centre, a_px: 'float', R_px: 'float', inner: 'float' = 1.0) -> 'dict'; aus dem Register: opsdrive.get("sphere_normals_known"))
Eindrückung durch eine bekannte Kugel: liefert die Normalen innerhalb des Kontaktkreises (Mittelpunkt centre = (Zeile, Spalte), Radius a_px) in geschlossener Form.
n = (−dx, −dy, √(R² − r²))/R (dx = Spalte − Mittelspalte, dy = Zeile − Mittelzeile). Die Maske ist r < inner · min(a, R) (wie im Kalibrierverfahren bis zum kleineren von a und R). Außerhalb (0, 0, 1). Rückgabe: normals (H, W, 3), mask (H, W) bool, r (H, W) [px], theta (Neigungswinkel = atan2(r, √(R² − r²)), außerhalb der Maske 0). Raises ValueError: falsche Form von shape oder centre, a oder R ≤ 0, inner außerhalb von 0 < inner ≤ 1.
• 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_tacscalib_sphere_lut — py -3.11 examples/poc_tacscalib_sphere_lut.py
table als Eingabe)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
tacscalib)calib_pack_load · lights_fit_from_sphere · membrane_predict_rgb · gradient_lut_build · gradient_lut_invert · normal_error_map · sphere_cap_height · field_position_sweep
*Provenance: tacscalib.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.