lidar_projection op• Data kinds: points → image2d
• Call: import fullseye as fs; fs.ledger.project_spherical(points, h_res: 'int' = 1024, v_res: 'int' = 64, v_fov=(-25.0, 15.0)) -> 'np.ndarray' (implementation को सीधे call करना हो तो import spherical_proj; spherical_proj.project_spherical(points, h_res: 'int' = 1024, v_res: 'int' = 64, v_fov=(-25.0, 15.0)) -> 'np.ndarray', registry से लेना हो तो ops3d.get("project_spherical"))
rotating LiDAR की spherical range image पर project करता है (v_res, h_res)। खाली cell=0, पास वाले point को प्राथमिकता (न्यूनतम range)।
हर point को azimuth (column) × elevation (row) bin में डालता है और sensor origin से range (slant distance) लिखता है। v_fov=(v_min,v_max)[degree] के elevation band के बाहर, origin पर (r=0), या non-finite coordinates वाले points छोड़ दिए जाते हैं (honest drop)। खाली हो या सब drop हो जाए तो पूरी तरह शून्य image लौटाता है (= कुछ भी नहीं दिख रहा, honest)।
• points: (N,3), sensor origin के सापेक्ष, x=आगे, y=बाएँ, z=ऊपर। (N,3) न हो तो ValueError।
• h_res / v_res: columns की संख्या (360° azimuth के बराबर भाग) और rows की संख्या (elevation band के बराबर भाग)। धनात्मक न हो तो ValueError।
• v_fov: (v_min, v_max) [degree]। v_min < v_max न हो तो ValueError।
column floor((atan2(y,x) + π) / 2π · h_res) है; column 0 ठीक पीछे (-x), h_res//2 ठीक सामने (+x) है, और यह counter-clockwise बढ़ता है। row (v_res-1) - floor((θ - v_min)/(v_max - v_min) · v_res) है (θ elevation है [degree]); row 0 band का ऊपरी सिरा है (θ=v_max)। pixel value slant range sqrt(x²+y²+z²) है (coordinates की unit में)। एक ही cell में कई points पड़ें तो np.minimum.at न्यूनतम range रखता है (पीछे के points खो जाते हैं)। inverse unproject_spherical है (वही v_fov दें)। ऊँचाई से layers काटने वाला variant project_cylindrical है।
• depth_sensors — Depth sensors — ranging के सिद्धांत, असली devices के आँकड़े, dropouts कैसे दिखते हैं
• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।
• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।
• lidar_projection — py -3.11 examples_3d/lidar_projection.py
image2d को input के रूप में लेते हैं)fuse_to_voxel · fit_poly_surface · eval_poly_surface · surface_form_error · background_flatten · polar_unwrap · fit_zernike · matcap_shade
lidar_projection)unproject_spherical · project_cylindrical
*Provenance: spherical_proj.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.