drle_evolve — SEGMENTATION contour op

• Datenarten: image2d × mask → table

• Aufruf: import fullseye as fs; fs.ledger.drle_evolve(image, init, *, mu: 'Optional[float]' = None, lambda_: 'float' = 5.0, alpha: 'float' = 1.5, epsilon: 'float' = 1.5, dt: 'float' = 1.0, sigma: 'float' = 1.5, k: 'float' = 0.00392156862745098, g=None, n_iter: 'int' = 300, c0: 'float' = 2.0, potential: 'str' = 'double_well', record_every: 'int' = 0) -> 'Dict[str, object]' (die Implementierung direkt: import segcontour; segcontour.drle_evolve(image, init, *, mu: 'Optional[float]' = None, lambda_: 'float' = 5.0, alpha: 'float' = 1.5, epsilon: 'float' = 1.5, dt: 'float' = 1.0, sigma: 'float' = 1.5, k: 'float' = 0.00392156862745098, g=None, n_iter: 'int' = 300, c0: 'float' = 2.0, potential: 'str' = 'double_well', record_every: 'int' = 0) -> 'Dict[str, object]'; aus dem Register: opssegmentation.get("drle_evolve"))

Verwendung

Kantenbasierte abstandsregularisierte Level-Set-Evolution DRLSE (Li–Xu–Gui–Fox 2010). Ohne Reinitialisierung (drle_evolve).

φ_t = μ div(d_p(|∇φ|)∇φ) + λ δ_ε(φ) div(g ∇φ/|∇φ|) + α g δ_ε(φ) (φ < 0 ist innen, α > 0 schrumpft). d_p(s) = p'(s)/s. Doppelmulde p2(s) = (1 − cos 2πs)/(2π)² (s ≤ 1), (s − 1)²/2 (s ≥ 1); Einfachmulde p1(s) = (s − 1)²/2. Anfang = 2-wertige Stufe (innen −c0, außen +c0, wie in Lis Beispiel). g = das g von edge_stop_g(image, sigma, k) (kann auch direkt über g übergeben werden). Standard für μ ist 0.2/dt; ist die CFL-Bedingung μ dt < 1/4 nicht erfüllt, ValueError. Rand: das Neumann aus Lis Code. Die Energie ε(φ) = μ Σ p(|∇φ|) + λ Σ g δ_ε(φ)|∇φ| + α Σ g H_ε(−φ) wird ebenfalls in jeder Iteration aufgezeichnet (gemessen, kein Gate).

Rückgabewert: mask (φ < 0), phi, grad (Quantile von |∇φ| bei |φ| ≤ ε), grad_trace (Median alle record_every), energy, n_increase, history, n_iter.

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_chan_vese · morph_geodesic_ac · edge_stop_g · level_set_reinit


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