paper op• Datenarten: image2d × text → image2d
• Aufruf: import fullseye as fs; fs.ledger.annotate_table(img, text, xy, anchor='lt', font_size=13, color='neutral', text_color=None, box_color=None, box_alpha=0.72, pad=6, col_gap=None, row_gap=0, align='auto', header=False, grid=False, border=0, border_color=None, font_path=None, scheme='okabe_ito', min_contrast=2.0, bold=False, italic=False, line_spacing=1.15, style=None, layout=None) (die Implementierung direkt: import annotate; annotate.annotate_table(img, text, xy, anchor='lt', font_size=13, color='neutral', text_color=None, box_color=None, box_alpha=0.72, pad=6, col_gap=None, row_gap=0, align='auto', header=False, grid=False, border=0, border_color=None, font_path=None, scheme='okabe_ito', min_contrast=2.0, bold=False, italic=False, line_spacing=1.15, style=None, layout=None); aus dem Register: opsannotate.get("annotate_table"))
Gibt ein Bild (image2d) zurück: zeichnet einen tabulatorgetrennten String als Tabelle (mit halbtransparenter Hinterlegung).
Die Spaltenbreiten bestimmt annotate_table_layout durch Messen mit der echten Schrift. Der Standard- Spaltenabstand ist das 0.6-Fache der Zeilenhöhe, daher ändert sich der Abstand mit font_size. Die Unterlage ist standardmäßig halbtransparent (box_alpha=0.72; 0 bedeutet keine Unterlage).
box_alpha : float
Deckkraft der Unterlage [0,1]. Bei 0 wird keine Unterlage gezeichnet. Bei Halbtransparenz scheint das Bild darunter
durch, daher wird die Textfarbe gegen "die tatsächlich darunter erscheinende Farbe" geprüft.
grid : bool
Wenn wahr, werden an Spalten- und Zeilengrenzen blasse Linien gezogen. Standard ist ohne (eine Tabelle ohne Linien
ist oft besser lesbar; nur bei Bedarf hinzufügen).
header : bool
Wenn wahr, wird die 1. Zeile fett gesetzt und darunter 1 Linie gezogen.
align : str or sequence
TABLE_ALIGNS. Der Standard "auto" richtet nur Zahlenspalten rechtsbündig aus.
layout : dict or None
Übergibt man den Rückgabewert von annotate_table_layout, wird nicht neu berechnet.
Wird es übergeben, werden anchor usw. ignoriert (nicht beides übergeben).
(H,W[,C]) float64
Kopie mit gezeichneter Tabelle. Die Eingabe wird nicht verändert.
ValueError
Wie annotate_table_layout + Tabelle ragt aus dem Bild +
Text unterschreitet min_contrast gegenüber dem Untergrund (wird nicht stillschweigend abgeschnitten).
>>> import numpy as np, annotate
>>> img = np.zeros((120, 260, 3))
>>> out = annotate.annotate_table(img, "Posten\tWert\nFläche\t12.5\nUmfang\t9.75",
... (10, 10), header=True)
>>> out.shape
(120, 260, 3)
>>> float(np.abs(out - img).max()) > 0.1
True
• Leitfaden zur Familie figure_annotation
• dataset_conventions — Konventionen für Trainingsdatensätze — COCO / YOLO / VOC und Fallstricke in der Sichtprüfung
• 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.
• annotate_paper_tour — py -3.11 examples/annotate_paper_tour.py
• poc_rotation_invariance_audit — py -3.11 examples/poc_rotation_invariance_audit.py
image2d als Eingabe)text_box · arrow · leader_line · label_points · crosshair · legend_box · color_bar · scale_bar
paper)annotate_leader_layout · annotate_leader · annotate_markers · annotate_legend · annotate_dimension_layout · annotate_dimension · annotate_angle_layout · annotate_angle
*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.