edges op• Datenarten: image → image
• Aufruf: fullseye.apply(img, "edge_transition_width", a=0.5, b=0.5) (das 2-D-Modell ist ein Bild plus zwei skalare Regler a,b∈[0,1])

*Die Abbildung ist die tatsächliche Ausgabe auf einer synthetischen 128×128-Eingabe. Links Eingabe, rechts Ausgabe. Punktwolken als Draufsicht-Streudiagramm (Helligkeit = z), 1-D-Reihen als Linie, Volumen als Maximum-Projektion entlang z, Videos als mittleres Bild, komplexe Bilder als Betrag; Rückgabewerte, die kein Bild ergeben, werden als Werte gezeigt.*
Regler a durchfahren (0,1 / 0,5 / 0,9, der andere Regler auf Standard):
▸ edge_transition_width: Regler a durchfahren (Doku-Website)
Regler b durchfahren (0,1 / 0,5 / 0,9, der andere Regler auf Standard):
▸ edge_transition_width: Regler b durchfahren (Doku-Website)
Auf anderen Bildern (synthetische Szene / Foto / Münzen. Obere Reihe: Eingaben, untere Reihe: deren Ausgaben. Regler auf Standard):
▸ edge_transition_width: andere Eingaben (Doku-Website)
*Die 4. Spalte ist eine Farb-Eingabe (H,W,3). Dieser Op verarbeitet Farbe, ohne Kanäle zu vermischen (er faltet den Farbkanal nicht als dritte Raumachse).*
Misst die Kantenübergangsbreite (= die Ausdehnung der effektiven PSF an dieser Stelle) in Pixeln.
a variiert die Seitenlänge des Messfensters über 3,5,7,9 (_k(a)). b wählt den Schätzer für Amplitude und
Gradient: b <= 0.5 nimmt Maximum − Minimum im Fenster (einfach und scharf, aber anfällig für Ausreißer), b > 0.5 nimmt Quantile, und je höher b, desto mehr wandern die Quantile von 90/10 zu 60/40 und desto unempfindlicher wird es gegen Rauschen (entsprechend werden Stufen auch abgerundet = ein Zielkonflikt).
Breite ≒ lokale Amplitude ÷ lokaler maximaler Gradient. Steigt eine Stufe innerhalb von 1 Pixel an, liegt die Breite bei etwa 1; ist sie verschwommen und steigt über 5 Pixel an, bei etwa 5. Gegenstück zu simulate_defocus, das Unschärfe erzeugt; dieser Op ist die Seite, die sie misst. Verwendbar für Fokusbeurteilung, Ausmaß der Bewegungsunschärfe, Auflösungsgrenze und die Beurteilung, ob Schrift groß genug zum Lesen ist.
Ist das Fenster schmaler als der Übergang, wird unterschätzt (weil nicht die gesamte Amplitude ins Fenster passt).
Praxisregel: Übersteigt die Ausgabe 0.7, a erhöhen und neu messen.
Die Normierung erfolgt nicht pro Bild (es wird nur durch die Konstante Fensterseite geteilt), daher sind die Werte zwischen Bildern vergleichbar. Eine Ausgabe von 1.0 bedeutet "Übergangsbreite gleich Fenster = möglicherweise breiter als das Fenster und nicht vollständig gemessen" und ist das Signal, a zu erhöhen und neu zu messen. Flache Bereiche und Stellen ohne Kanten ergeben 0.
★Auf einem leeren Frame wird überall 0 zurückgegeben ("keine Kante"). Setzt man die Untergrenze nur relativ zur eigenen Amplitude des Bildes, wird bei einem gleichförmigen Bild selbst die Referenz zu Rundungsstaub, und das Verhältnis von Staub zu Staub wird zu Struktur ——
gemessen: Ein Bild, das nur aus einheitlich 0.5 mit 1e-12 Rauschen bestand, lieferte die Breite 3.49 (= halbes Fenster). Wir legen fest: Ein Bild, dessen Amplitude selbst die absolute Untergrenze 1e-6 nicht erreicht, hat keine Kante. Randbehandlung ist der scipy.ndimage-Standard reflect. Eine interne Reduktion auf 8 bit gibt es nicht.
• Leitfaden zur Familie gallery2d_edges
• 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.
Das Programm unten ist nachweislich lauffähig (gleiche Eingabe wie die Abbildung). In der Studio-Hilfe wird dieser Block zu Schaltflächen, die es sofort laden und ausführen.
edge_transition_width 0.40 0.50
▸ Diese Pipeline laden · Laden & ausführen
• gallery2d_edges — py -3.11 examples/gallery2d_edges.py
image als Eingabe)identity · gaussian · mean_box · bilateral · unsharp · median · min_filter · max_filter
edges)sobel_mag · prewitt_mag · roberts_mag · dog · grad_dir · log · corner_response · sk_scharr
*Provenance: ops.py — 2D 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.