persistence_map — 2D morphology op

• Datenarten: image → image

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

persistence_map: input → output

*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):

▸ persistence_map: Regler a durchfahren (Doku-Website)

Regler b durchfahren (0,1 / 0,5 / 0,9, der andere Regler auf Standard):

▸ persistence_map: Regler b durchfahren (Doku-Website)

Auf anderen Bildern (synthetische Szene / Foto / Münzen. Obere Reihe: Eingaben, untere Reihe: deren Ausgaben. Regler auf Standard):

▸ persistence_map: 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).*

Verwendung

Misst die „Prominenz der Gipfel“, ohne einen Schwellenwert zu wählen (0-dimensionale Persistenz).

Wählt man einen einzigen Schwellwert, wird der Anwendungsbereich enger —— dieser Widerspruch löst sich, indem man "alle Schwellwerte durchprobiert und nur behält, was sich nicht ändert". Man senkt den Wasserspiegel von oben ab; die Differenz zwischen der Höhe, bei der ein neuer Gipfel auftaucht (Geburt), und der Höhe, bei der dieser Gipfel von einem höheren verschluckt wird (Tod), gilt als die Persistenz (wie stark er hervortritt) dieses Gipfels. Das ist genau das, was man in der Topografie "Prominenz" nennt.

Die Ausgabe ist eine Karte, die in jedem Pixel "die Persistenz des Gipfels, zu dem das Pixel gehört" enthält. a ist die Untergrenze für das Behalten (Gipfel darunter werden auf 0 gesetzt), b die Art des Zusammenhangs (unter 0.5 4er-Nachbarschaft, sonst 8er-Nachbarschaft).

h_maxima / MSER im Vergleich: xsk2_h_maxima wählt ein h und liefert "die Gipfel mindestens dieser Höhe" —— wählt also einen Schwellwert. Dieser Op faltet die Antworten für alle h in ein einziges Bild, sodass man später auf jedem beliebigen Niveau schneiden kann. MSER sucht "Regionen mit stabiler Fläche", eine ähnliche Idee, betrachtet aber die Form der Region, dieser Op die Höhe.

Anwendungsbedingungen: (1) Der höchste Gipfel des ganzen Bildes stirbt nie, daher wird Maximum - Minimum als seine Persistenz genommen (Konvention). Deshalb trägt der Hintergrund den globalen Maximalwert (1.0) —— der Hintergrund wird zuletzt verarbeitet, wenn alle Komponenten bereits verschmolzen sind, topologisch gehört er also tatsächlich zur Gesamtkomponente. Es ist eine Karte zum Ablesen von Gipfelhöhen, keine Karte, die den Hintergrund auf 0 setzt. Um den Hintergrund zu entfernen, mit einem Schwellwert-Op multiplizieren oder mit a die Untergrenze anheben (gemessen: bei a=0.45 verschwindet nur der Gipfel der Höhe 0.3, 1.0 und 0.6 bleiben). (2) Ein flaches Plateau (eine Folge gleicher Werte) wird als 1 Gipfel behandelt. (3) Die Berechnung ist ein union-find, das die Pixel absteigend abtastet, auf großen Bildern also langsamer als h_maxima.

Ausführlicher Anwendungsleitfaden

• Leitfaden zur Familie gallery2d_morphology

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.

In Studio ausprobieren

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.

persistence_map 0.35 0.50

▸ Diese Pipeline laden  ·  Laden & ausführen

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

• gallery2d_morphology — py -3.11 examples/gallery2d_morphology.py

Typkompatible Folge-Operatoren (nehmen image als Eingabe)

identity · gaussian · mean_box · bilateral · unsharp · median · min_filter · max_filter

Gleiche Kategorie (morphology)

gerode · gdilate · gopen · gclose · runlength_smear · tophat · bothat · morph_grad


*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.