bearing_angle_image — 3D range_image op

• Data kinds: depth → image2d

• Call: import fullseye as fs; fs.ledger.bearing_angle_image(depth, direction='down') (implementation को सीधे call करना हो तो import range_image; range_image.bearing_angle_image(depth, direction='down'), registry से लेना हो तो ops3d.get("bearing_angle_image"))

उपयोग

bearing-angle image: scan direction के साथ line of sight और local surface के बीच का कोण (range image का classic descriptor)। → HxW (डिग्री)।

पड़ोसी depth difference से local slope angle atan2(Δdepth, step) निकालता है। slope की दिशा के प्रति संवेदनशील और illumination-invariant। direction ∈ {down,up,right,left}।

direction "down"/"up" हो तो row direction (axis=0), और "right"/"left" हो तो column direction (axis=1) में np.gradient (central difference, किनारों पर one-sided difference) से पड़ोसी depth difference Δd लिया जाता है, और "up"/"left" में sign उलटा जाता है। angle degrees(atan2(Δd, 1)) है, इसलिए range (-90, 90) degree है, flat surface पर 0, और scan direction में दूर जाती surface पर positive। grid spacing 1 मानी जाती है, इसलिए अगर depth की unit pixel से अलग है (mm आदि) तो यह geometric incidence angle ख़ुद नहीं, बल्कि "प्रति depth unit slope" का angle होता है। ऊपर के 4 शब्दों के अलावा कोई direction column direction और बिना बदले sign की तरह लिया जाता है, और error नहीं आता। return value float32 (H,W) है। depth के step पर यह ±90 degree के करीब तक झूलता है, इसलिए occlusion का संकेत भी दे सकता है, लेकिन step और slope में फ़र्क करने के लिए occlusion_edges इस्तेमाल करें। कोई input validation नहीं है।

पृष्ठभूमि guides (इस op के पीछे की physics और conventions)

• blender_interop — Blender के साथ उपयोग — shape बनाएँ, fullseye से मापें (सावधानियाँ: axes, units, ground truth)

• depth_sensors — Depth sensors — ranging के सिद्धांत, असली devices के आँकड़े, dropouts कैसे दिखते हैं

संदर्भ (sample data, साहित्य)

• 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 के स्रोत।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• sensor_seg — py -3.11 examples_3d/sensor_seg.py

वे अगले ops जिनसे type जुड़ता है (image2d को input के रूप में लेते हैं)

fuse_to_voxel · fit_poly_surface · eval_poly_surface · surface_form_error · background_flatten · polar_unwrap · fit_zernike · matcap_shade

इसी category के (range_image)

depth_to_organized_points · normals_from_depth · occlusion_edges


*Provenance: range_image.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.