morph_chan_vese — SEGMENTATION contour op

• Data kinds: image2d × mask → table

• Call: 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]' (implementation को सीधे call करना हो तो 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]', registry से लेना हो तो opssegmentation.get("morph_chan_vese"))

उपयोग

morphological Chan–Vese (Márquez-Neila–Baumela–Álvarez 2014 का MorphACWE)। 1 iteration = data चरण + smoothing चरण।

Data चरण: c1 = अंदर का mean, c0 = बाहर का mean, aux = |∇u|(λ1 (I − c1)² − λ2 (I − c0)²); aux < 0 वाले pixels अंदर, aux > 0 वाले बाहर (|∇u| ≠ 0 = केवल boundary के पास वाले हिलते हैं)। Smoothing चरण: curvature operator (SI∘IS और IS∘SI बारी-बारी) smoothing बार। phase = पहले इस्तेमाल होने वाला operator (0 = SI∘IS)। skimage का implementation बारी-बारी की phase को module की global state में रखता है, इसलिए एक ही input पर भी पिछली call के अनुसार परिणाम बदल सकता है — यहाँ हर call phase से शुरू होती है (deterministic)। fitting energy E_fit = λ1 Σ_in (I − c1)² + λ2 Σ_out (I − c0)² हर चरण के पहले और बाद में दर्ज की जाती है। Gate (exact): c स्थिर हो तो E_fit pixel-वार योग है, इसलिए data चरण में पलटा हर pixel E_fit को घटाता है (या बराबर रखता है), और उसके बाद c को mean पर update करने से यह और घटता है ⇒ data चरण के पहले और बाद E_fit monotonically non-increasing है (n_data_increase = 0)। smoothing चरण E_fit को बढ़ा सकता है (fit_after_smooth में measured)।

Returns: mask, fit_before_data / fit_after_data / fit_after_smooth (हर iteration), n_data_increase, history, n_iter, n_changed (हर iteration में बदले pixels की संख्या)।

उपयोग की विस्तृत guide

• halcon_segmentation family guide

पृष्ठभूमि guides (इस op के पीछे की physics और conventions)

• active_contours_and_level_sets — Variational और active contours, level sets — कौन-सा contour कहाँ रुकता है, और वह क्या guarantee देता है

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• poc_active_contours — py -3.11 examples/poc_active_contours.py

वे अगले ops जिनसे type जुड़ता है (table को input के रूप में लेते हैं)

class_ndim_norm

इसी category के (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. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.