annotate3d_bbox — 3D 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 बनाया जाता है।

Raises

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, साहित्य)

• 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 करते हैं)

• annotate3d_figure — py -3.11 examples_3d/annotate3d_figure.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 के (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.