compose opimage2d → image2dimport 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) (実装を直接呼ぶなら 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)、台帳から引くなら opsannotate.get("panel_grid"))パネルを格子に並べ、各枠の下にラベルを敷く(montage / contact sheet)。
生成器 6 本がそれぞれ別実装を持っていた、この repo で最も重複していた図の 部品。ここでの流儀:
text_box の境界検査に載る)。panels : sequence of ndarray
並べる画像((H,W) / (H,W,C)、大きさはばらばらでよい)。
チャンネルの並びは揃っていること。
labels : sequence of str or None
各パネルの見出し。label_h が 0 なら描かない。
ncols : int
列数。行数は ceil(n/ncols)。
title : str or None
全体の表題(title_h が 0 なら font_size+14 を自動で確保)。
ndarray
新しい合成画像(float [0,1])。大きさは
W = 2*pad + ncols*cw + (ncols-1)*pad、
H = title_h + 2*pad + nrows*(ch+label_h) + (nrows-1)*pad。
ValueError panels が空 / チャンネル不一致 / ncols < 1 / 負の余白 / labels の数が合わない。
py -3.11 examples/annotate_gallery.pypy -3.11 examples/annotate_paper_tour.pyimage2d を入力に取れる)text_box · arrow · leader_line · label_points · crosshair · legend_box · color_bar · scale_bar
compose)Provenance: annotate.py — ANNOTATE operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.