annotate3d op• Data kinds: image2d → image2d
• Call: import fullseye as fs; fs.ledger.annotate3d_bbox(img, bounds, pose, K, depth=None, color='emphasis', width=1.5, occlusion_tol=0.01, scheme='okabe_ito') (implementation को सीधे call करना हो तो import annotate3d; annotate3d.annotate3d_bbox(img, bounds, pose, K, depth=None, color='emphasis', width=1.5, occlusion_tol=0.01, scheme='okabe_ito'), registry से लेना हो तो ops3d.get("annotate3d_bbox"))
image (image2d) लौटाता है: axis-aligned 3-D box ((xmin,ymin,zmin),(xmax,ymax,zmax)) के 12 edges को project करके draw करता है।
depth देने पर जिन edges के दोनों सिरे छिपे हों उन्हें dashed बनाया जाता है।
ValueError
bounds का shape गलत / min > max, कोई corner camera के पीछे।
प्रक्रिया: bounds से 8 corners (x_i, y_j, z_k) (i, j, k ∈ {min, max}) बनाए जाते हैं, और एक साथ project किए जाते हैं (annotate3d_project वाली ही convention)। 12 edges को annotate._aa_polyline से बनाया जाता है। edge के दोनों सिरे hidden हों तो dashed, सिर्फ़ एक सिरा हो तो solid line।
Arguments:
• bounds: ((xmin, ymin, zmin), (xmax, ymax, zmax)) का (2, 3) (object coordinates, finite, हर axis पर max >= min। max == min वाला सिमटा box स्वीकार्य है)। point cloud के लिए points.min(0) / points.max(0), mesh के लिए V से बनाएँ।
• width: line width [px], >= 0.5 का real number। color: role name या RGB।
• depth: forward-distance image (render3d.render_mesh का depth)। occlusion_tol: [0, 1)।
Return value: drawing वाली नई image (float64 [0, 1], input बदला नहीं जाता)।
Error की शर्तें: bounds (2, 3) न हो, non-finite हो, या max < min वाला कोई axis हो / 8 corners में से कोई भी z <= 1e-9 हो (camera plane पर या पीछे। box viewpoint को घेरता हो तो नहीं बनाया जा सकता) / pose, K या depth अमान्य हो। corner का image के बाहर जाना error नहीं है (lines frame के बाहर तक खींची जाती हैं, और कटी हुई दिखती हैं)।
ध्यान दें: सिर्फ़ axis-aligned (object coordinates के axes के साथ संरेखित) boxes। घुमाया हुआ box (smallest_box3 के corners) बनाने के लिए, 8 corners को खुद project करें (annotate3d_project) और 2-D annotate line drawing से जोड़ें।
• 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 के स्रोत।
• annotate3d_figure — py -3.11 examples_3d/annotate3d_figure.py
image2d को input के रूप में लेते हैं)fuse_to_voxel · fit_poly_surface · eval_poly_surface · surface_form_error · background_flatten · polar_unwrap · fit_zernike · matcap_shade
annotate3d)annotate3d_project · annotate3d_arrow · annotate3d_label · annotate3d_scale_bar · annotate3d_axes · annotate3d_measure
*Provenance: annotate3d.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.