lidar_projection op• Datenarten: image2d → points
• Aufruf: import fullseye as fs; fs.ledger.unproject_spherical(range_img, v_fov=(-25.0, 15.0)) -> 'np.ndarray' (die Implementierung direkt: import spherical_proj; spherical_proj.unproject_spherical(range_img, v_fov=(-25.0, 15.0)) -> 'np.ndarray'; aus dem Register: ops3d.get("unproject_spherical"))
Sphärisches Range-Bild → 3-D-Punkte (M, 3). Nur Zellen mit range > 0 werden mit ihren Bin-Mittenwinkeln rückprojiziert.
Umkehrung von project_spherical. Rekonstruiert aus Zeile/Spalte (elevation, azimuth) des Bin-Zentrums und rechnet mit der gespeicherten Range als slant distance von Kugel- → kartesische Koordinaten zurück. Ist sie leer (alles 0), wird (0, 3) zurückgegeben.
• range_img: 2-D-Array (v_res, h_res) (nicht 2-D oder Größe 0 ergibt ValueError). Nur Zellen mit range > 0 werden zu Punkten (0 = leere Zelle, negative Werte werden ebenfalls ignoriert).
• v_fov: dasselbe (v_min, v_max) [Grad] wie bei der Projektion. Ein anderer Wert ergibt eine Punktwolke mit verschobener Elevation (Konsistenz ist nicht prüfbar).
Spalte c → Azimut az = (c + 0.5) / h_res · 2π - π, Zeile r → Elevation el = v_min + ((v_res-1-r) + 0.5) / v_res · (v_max - v_min) (Grad → rad), dann x = r cos(el) cos(az), y = r cos(el) sin(az), z = r sin(el). Die Punktreihenfolge ist die zeilenweise Reihenfolge von np.nonzero (ab Zeile 0). Da auf Bin-Zentren zurückgerechnet wird, weichen die Punkte von den ursprünglichen um bis zu etwa "halber Zellwinkel × Range" ab, und bei der Projektion verworfene Punkte (weiter hinten in derselben Zelle, außerhalb des FOV) kommen nicht zurück. Ein Hin- und Rückweg verringert die Punktzahl im Allgemeinen.
• depth_sensors — Tiefensensoren — Messprinzipien, Werte realer Geräte, wie Messlücken entstehen
• 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.
• lidar_projection — py -3.11 examples_3d/lidar_projection.py
points als Eingabe)points_to_voxel · gaussians_to_voxel · estimate_point_normals · to_points · match_points_ncc · match_pca · moment_axes · icp_point2point_3d
lidar_projection)project_spherical · project_cylindrical
*Provenance: spherical_proj.py — 3D 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.