lidar_projection op• Data kinds: points → image2d
• Call: import fullseye as fs; fs.ledger.project_cylindrical(points, h_res: 'int' = 1024, z_bins: 'int' = 64, z_range=None) -> 'np.ndarray' (to call the implementation directly, import spherical_proj; spherical_proj.project_cylindrical(points, h_res: 'int' = 1024, z_bins: 'int' = 64, z_range=None) -> 'np.ndarray'; from the registry, ops3d.get("project_cylindrical"))
Project into a cylindrical range image (z_bins, h_res). Azimuth (columns) × z (rows); the pixel is the horizontal radius ρ = hypot(x,y).
Whereas spherical projection slices layers by elevation, cylindrical projection slices height z at equal intervals (suited to unrolling walls/pillars/corridors). The pixel value is the horizontal distance ρ from the z axis (a natural invariant that is constant for points on a cylinder). Empty cell = 0, nearer points take priority (minimum ρ). If z_range=(z_min,z_max) is not given, the point cloud's [z.min, z.max] is used. Zero z width is fail-closed (ValueError). Row 0 = top (z=z_max). Points outside z_range, on the z axis (ρ=0), or with non-finite coordinates are dropped.
• depth_sensors — Depth sensors — ranging principles, real-device figures, how dropouts appear
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• curvilinear_proj — py -3.11 examples_3d/curvilinear_proj.py
image2d as input)fuse_to_voxel · fit_poly_surface · eval_poly_surface · surface_form_error · background_flatten · polar_unwrap · fit_zernike · matcap_shade
lidar_projection)project_spherical · unproject_spherical
*Provenance: spherical_proj.py — 3D operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.