panel_grid — ANNOTATE compose op

• Datenarten: image2d → image2d

• Aufruf: 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) (die Implementierung direkt: 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); aus dem Register: opsannotate.get("panel_grid"))

Verwendung

Ordnet Panels in einem Raster an, mit einem Beschriftungsstreifen unter jedem Rahmen (Montage / Kontaktbogen).

6 Generatoren hatten jeweils eine eigene Implementierung -- die am häufigsten duplizierte Abbildungskomponente in diesem repo. Die Konventionen hier:

• Kein Hochskalieren -- kleine Panels werden zentriert und mit Rand aufgefüllt. Strecken würde so aussehen, als "gäbe es Auflösung, die nicht existiert".

• Labels erst messen, dann zeichnen -- passen sie nicht, werden sie verkleinert, und klappt das nicht, gibt es eine Exception (über die Randprüfung von text_box).

• Die Zellgröße ist das größte Maß über alle Panels, und das Gitter ist immer rechteckig.

Parameters

panels : sequence of ndarray

Anzuordnende Bilder ((H,W) / (H,W,C), Größen dürfen variieren).

Die Kanalanordnung muss übereinstimmen.

labels : sequence of str or None

Überschrift jedes Panels. Ist label_h 0, wird nichts gezeichnet.

ncols : int

Spaltenzahl. Die Zeilenzahl ist ceil(n/ncols).

title : str or None

Gesamttitel (ist title_h 0, wird automatisch font_size+14 reserviert).

Returns

ndarray

Neues zusammengesetztes Bild (float [0,1]). Die Größe ist

W = 2*pad + ncols*cw + (ncols-1)*pad,

H = title_h + 2*pad + nrows*(ch+label_h) + (nrows-1)*pad.

Raises

ValueError

panels leer / Kanäle ungleich / ncols < 1 / negativer Rand /

Anzahl der labels passt nicht.

Ausführlicher Anwendungsleitfaden

• Leitfaden zur Familie figure_annotation

Hintergrundwissen (Physik und Konventionen hinter diesem Operator)

• dataset_conventions — Konventionen für Trainingsdatensätze — COCO / YOLO / VOC und Fallstricke in der Sichtprüfung

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• annotate_gallery — py -3.11 examples/annotate_gallery.py

• annotate_paper_tour — py -3.11 examples/annotate_paper_tour.py

Typkompatible Folge-Operatoren (nehmen image2d als Eingabe)

text_box · arrow · leader_line · label_points · crosshair · legend_box · color_bar · scale_bar

Gleiche Kategorie (compose)

zoom_inset · compare_frame


*Provenance: annotate.py — ANNOTATE Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

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