morph_chan_vese — SEGMENTATION contour op

• Datenarten: image2d × mask → table

• Aufruf: import fullseye as fs; fs.ledger.morph_chan_vese(image, init, *, n_iter: 'int' = 100, smoothing: 'int' = 1, lambda1: 'float' = 1.0, lambda2: 'float' = 1.0, phase: 'int' = 0, record_every: 'int' = 0) -> 'Dict[str, object]' (die Implementierung direkt: import segcontour; segcontour.morph_chan_vese(image, init, *, n_iter: 'int' = 100, smoothing: 'int' = 1, lambda1: 'float' = 1.0, lambda2: 'float' = 1.0, phase: 'int' = 0, record_every: 'int' = 0) -> 'Dict[str, object]'; aus dem Register: opssegmentation.get("morph_chan_vese"))

Verwendung

Morphologisches Chan–Vese (MorphACWE von Márquez-Neila–Baumela–Álvarez 2014). Eine Iteration = Datenschritt + Glättungsschritt (morph_chan_vese).

Datenschritt: c1 = Mittel innen, c0 = Mittel außen, aux = |∇u|(λ1 (I − c1)² − λ2 (I − c0)²); Pixel mit aux < 0 kommen nach innen, aux > 0 nach außen (|∇u| ≠ 0 = nur Pixel nahe dem Rand bewegen sich). Glättungsschritt: der Krümmungsoperator (SI∘IS und IS∘SI abwechselnd) smoothing-mal. phase = der zuerst verwendete Operator (0 = SI∘IS). Die skimage-Implementierung hält die wechselnde Phase im globalen Zustand des Moduls, daher kann dieselbe Eingabe je nach vorherigem Aufruf ein anderes Ergebnis liefern — hier beginnt jeder Aufruf bei phase (deterministisch). Die Anpassungsenergie E_fit = λ1 Σ_in (I − c1)² + λ2 Σ_out (I − c0)² wird vor und nach jedem Schritt aufgezeichnet. Gate (exakt): Bei festem c ist E_fit eine Summe über Pixel, daher senkt jedes im Datenschritt umgeklappte Pixel E_fit (oder lässt es gleich), und das anschließende Aktualisieren von c auf die Mittel senkt es weiter ⇒ über den Datenschritt ist E_fit monoton nicht wachsend (n_data_increase = 0). Der Glättungsschritt kann E_fit erhöhen (gemessen in fit_after_smooth).

Rückgabewert: mask, fit_before_data / fit_after_data / fit_after_smooth (je Iteration), n_data_increase, history, n_iter, n_changed (Anzahl geänderter Pixel je Iteration).

Ausführlicher Anwendungsleitfaden

• Leitfaden zur Familie halcon_segmentation

Hintergrundwissen (Physik und Konventionen hinter diesem Operator)

• active_contours_and_level_sets — Variationelle und aktive Konturen, Level-Sets — welche Kontur wo stoppt und was sie garantiert

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)

• poc_active_contours — py -3.11 examples/poc_active_contours.py

Typkompatible Folge-Operatoren (nehmen table als Eingabe)

class_ndim_norm

Gleiche Kategorie (contour)

snake_evolve · gvf_field · chan_vese_energy · chan_vese_evolve · morph_geodesic_ac · edge_stop_g · level_set_reinit · drle_evolve


*Provenance: segcontour.py — SEGMENTATION 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.