compose op• Data kinds: image2d → image2d
• Call: import fullseye as fs; fs.ledger.panel_grid(panels, labels=None, ncols=3, pad=10, label_h=32, background=0.05, title=None, title_h=0, font_size=15, min_font_size=9, font_path=None, text_color=None, border=0, border_color='neutral', scheme='okabe_ito', style=None) (implementation को सीधे call करना हो तो import annotate; annotate.panel_grid(panels, labels=None, ncols=3, pad=10, label_h=32, background=0.05, title=None, title_h=0, font_size=15, min_font_size=9, font_path=None, text_color=None, border=0, border_color='neutral', scheme='okabe_ito', style=None), registry से लेना हो तो opsannotate.get("panel_grid"))
• GPU: केवल chain के भीतर (allow-list का mechanical GPU path, CuPy)। पड़ोसी stage भी allow-list में हो तभी GPU पर resident रहता है। अकेली call CPU पर चलती है
panel को grid पर सजाता है, हर frame के नीचे label की पट्टी के साथ (montage / contact sheet)।
6 generators में हर एक का अपना अलग implementation था -- यह इस repo का सबसे अधिक duplicate हुआ figure component है। यहाँ के नियम:
• upscale नहीं करता -- छोटे panels को केंद्र में रखकर margin से भरता है। खींचने पर ऐसा लगता है मानो "जो resolution है ही नहीं, वह मौजूद है"।
• labels को मापकर फिर बनाता है -- न समाएँ तो छोटा करता है, फिर भी न हो तो exception (text_box की boundary जाँच में पकड़ा जाता है)।
• cell का size सभी panels का अधिकतम माप है, और grid हमेशा आयताकार होता है।
panels : sequence of ndarray
क्रम से रखी जाने वाली images ((H,W) / (H,W,C), size अलग-अलग हो सकते हैं)।
channels का क्रम समान होना चाहिए।
labels : sequence of str or None
हर panel का शीर्षक। label_h 0 हो तो नहीं बनता।
ncols : int
columns की संख्या। rows की संख्या ceil(n/ncols) है।
title : str or None
पूरे का शीर्षक (title_h 0 हो तो font_size+14 अपने-आप reserve होता है)।
ndarray
नई composite image (float [0,1])। size है
W = 2*pad + ncols*cw + (ncols-1)*pad,
H = title_h + 2*pad + nrows*(ch+label_h) + (nrows-1)*pad।
ValueError
panels खाली / channels मेल नहीं खाते / ncols < 1 / negative margin /
labels की संख्या मेल नहीं खाती।
• figure_annotation family guide
• dataset_conventions — Training dataset के conventions — COCO / YOLO / VOC और visual inspection में सावधानियाँ
• 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 में दिए गए हैं।
• annotate_gallery — py -3.11 examples/annotate_gallery.py
• annotate_paper_tour — py -3.11 examples/annotate_paper_tour.py
image2d को input के रूप में लेते हैं)text_box · arrow · leader_line · label_points · crosshair · legend_box · color_bar · scale_bar
compose)*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.