annotate_leader_layout — ANNOTATE paper op

• Data kinds: कोई नहीं → table (केवल arguments से तय होने वाला op — यह कोई image या data input नहीं लेता)

• Call: import fullseye as fs; fs.ledger.annotate_leader_layout(shape, points, labels=None, font_size=12, pad=4, gap=22, side='auto', font_path=None, min_font_size=9) (implementation को सीधे call करना हो तो import annotate; annotate.annotate_leader_layout(shape, points, labels=None, font_size=12, pad=4, gap=22, side='auto', font_path=None, min_font_size=9), registry से लेना हो तो opsannotate.get("annotate_leader_layout"))

उपयोग

table (dict) लौटाता है: leader line की placement (कोहनी, text position, plate का rectangle) closed form में तय करता है।

हर point के लिए candidate sides को तय क्रम में आज़माता है, और पहला candidate लेता है जिसकी plate image में समाए, किसी दूसरी plate से overlap न करे और किसी दूसरे point को न ढके। कोई candidate काम न करे तो elbow को 1.6 गुना, फिर 2.4 गुना बढ़ाकर फिर कोशिश करता है, फिर भी न हो तो ValueError (चुपचाप overlap नहीं करता)।

Parameters

shape : (H, W)

बनाई जाने वाली image का size।

points : (N, 2)

जिन points की ओर इशारा करना है, (x, y)।

labels : sequence of str or None

हर point का text। None हो तो 1 से शुरू होने वाले नंबर।

gap : float

elbow की लंबाई [px]। तिरछा arm = gap, horizontal arm = 0.6*gap।

side : {'auto','left','right'}

'auto' पहले image केंद्र से दूर जाने वाली side आज़माता है (ताकि वस्तु के ऊपर text

न रखा जाए)।

Returns

dict

{"n", "gap", "items": [{"point", "elbow", "text_xy", "anchor", "box", "side"}]}। box plate का (x, y, w, h) है।

Raises

ValueError

points खाली या non-finite, labels की संख्या मेल नहीं खाती, अज्ञात side, ऐसा point जिसे रखा नहीं जा सकता।

उपयोग की विस्तृत guide

• figure_annotation family guide

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

• dataset_conventions — Training dataset के conventions — COCO / YOLO / VOC और visual inspection में सावधानियाँ

संदर्भ (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 के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

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

• paper_figure — py -3.11 examples/paper_figure.py

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

—

इसी category के (paper)

annotate_leader · annotate_markers · annotate_legend · annotate_dimension_layout · annotate_dimension · annotate_angle_layout · annotate_angle · annotate_scale_bar_layout


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

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