stroke op• Datenarten: image2d → pairs
• Aufruf: import fullseye as fs; fs.ledger.stipple_points_from_image(image, n_points, iterations=30, gamma=1.0, floor=0.02, seed=0, metric='euclidean') (die Implementierung direkt: import printpath; printpath.stipple_points_from_image(image, n_points, iterations=30, gamma=1.0, floor=0.02, seed=0, metric='euclidean'); aus dem Register: opsprintpath.get("stipple_points_from_image"))
Bildet Grauwerte auf die Punktdichte ab (gewichtetes Lloyd-Verfahren = zentroidale Voronoi-Zerlegung). → pairs
Punkte sammeln sich dicht, wo es dunkel ist. Zurückgegeben wird (n_points, 2) als (row, col).
Args:
image: 2-D-Helligkeit in [0, 1] (oder Farbe; auf Leuchtdichte reduziert).
n_points: Anzahl der Punkte.
iterations: Anzahl der Iterationen von Lloyd.
gamma: setzt das Gewicht auf darkness ** gamma (1 = Dunkelheit unverändert).
floor: Untergrenze des Gewichts. Nicht auf 0 setzen -- ist das Gewicht einer reinweißen Region exakt 0,
können Punkte, die hineingeraten, sich nicht bewegen (Schwerpunkt 0/0), und ihre Position hängt nicht mehr von der Eingabe ab.
seed: Zufallszahlen für die Anfangsplatzierung.
metric: derzeit nur "euclidean".
Neben dem Rückgabewert lässt sich die Konvergenz messen, indem man stipple_points_from_image mit unterschiedlichen iterations aufruft und vergleicht (Lloyds Energie nimmt monoton ab).
★Selbst auf einem reinweißen Bild verteilen sich die Punkte gleichmäßig (bei konstanter Dichte ist das zentroidale Voronoi gleichmäßig). Das dient als Kontrollgruppe dafür, dass "es den Tonwert tatsächlich lesen kann".
• Leitfaden zur Familie printpath
• 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.
• poc_one_stroke_epicycles — py -3.11 examples/poc_one_stroke_epicycles.py
pairs als Eingabe)stipple_energy · stroke_tour_closed · mst_length · stroke_resample_closed · stroke_tone_error · mosaic_tiles_render
stroke)stipple_energy · stroke_tour_closed · mst_length · stroke_resample_closed · stroke_tone_error
*Provenance: printpath.py — PRINTPATH 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.