annotate_leader_layout — ANNOTATE paper op

• Datenarten: keine → table (ein Operator, der allein durch seine Argumente bestimmt ist — er nimmt kein Bild und keine Daten entgegen)

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

Verwendung

Liefert eine Tabelle (dict): die Anordnung der Hinweislinien (Knick, Textposition, Plattenrechteck) in geschlossener Form.

Für jeden Punkt werden die Kandidatenseiten in fester Reihenfolge probiert, und der erste Kandidat, dessen Tafel ins Bild passt, keine andere Tafel überlappt und keinen anderen Punkt verdeckt, wird genommen. Klappt kein Kandidat, wird der Ellbogen auf das 1.6-fache, dann 2.4-fache verlängert und erneut versucht; klappt es dann immer noch nicht, ValueError (kein stilles Überlappen).

Parameters

shape : (H, W)

Größe des zu zeichnenden Bilds.

points : (N, 2)

Zielpunkte (x, y).

labels : sequence of str or None

Text für jeden Punkt. Bei None Nummern ab 1.

gap : float

Ellbogenlänge [px]. Schräger Arm = gap, waagrechter Arm = 0.6*gap.

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

'auto' probiert zuerst die Seite, die sich vom Bildzentrum entfernt (damit kein Text

auf dem Objekt liegt).

Returns

dict

{"n", "gap", "items": [{"point", "elbow", "text_xy", "anchor", "box", "side"}]}. box ist das (x, y, w, h) der Tafel.

Raises

ValueError

Punkte leer oder nicht endlich, Anzahl der labels passt nicht, unbekannte side, ein nicht platzierbarer Punkt.

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)

• paper_figure — py -3.11 examples/paper_figure.py

Typkompatible Folge-Operatoren (nehmen table als Eingabe)

—

Gleiche Kategorie (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. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

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