morph_chan_vese — SEGMENTATION contour op

• 資料種類:image2d × mask → table

• 呼叫: 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]'(要直接呼叫實作,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]';從台帳取用則 opssegmentation.get("morph_chan_vese"))

用法

形態學 Chan–Vese(Márquez-Neila–Baumela–Álvarez 2014 的 MorphACWE)。1 次迭代 = 資料步 + 平滑步(morph_chan_vese)。

資料段: c1 = 內側平均,c0 = 外側平均,aux = |∇u|(λ1 (I − c1)² − λ2 (I − c0)²),把 aux < 0 的像素放到內側, aux > 0 的放到外側(|∇u| ≠ 0 = 只有邊界附近會動)。平滑段: 曲率運算子(SI∘IS 與 IS∘SI 交替)執行 smoothing 次。phase = 最先使用的運算子(0 = SI∘IS)。skimage 的實作把交替的相位保存在模組的全域狀態中,所以同樣的輸入也可能因上一次呼叫而結果不同 —— 這裡每次呼叫都從 phase 開始(確定性)。擬合能量 E_fit = λ1 Σ_in (I − c1)² + λ2 Σ_out (I − c0)² 在各段前後記錄。門檻(嚴格): 固定 c 時 E_fit 是逐像素的和,所以資料段中翻轉的像素都會使 E_fit 下降(或相等), 之後把 c 更新為平均值還會進一步下降 ⇒ 資料段前後 E_fit 單調不增(n_data_increase = 0)。平滑段可能使 E_fit 上升(以 fit_after_smooth 實測)。

回傳值: mask、fit_before_data / fit_after_data / fit_after_smooth(每次迭代)、n_data_increase、history、n_iter、n_changed(每次迭代變化的像素數)。

詳細使用指南

• halcon_segmentation 族使用指南

背景知識指南(該運算子背後的物理與規範)

• active_contours_and_level_sets — 變分、主動輪廓與水平集 —— 哪種輪廓停在哪裡、保證什麼

參考(範例資料、文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。

• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。

• 演算法的正典(作者、年份)與用途見上面的族使用指南。

可執行的範例(實際呼叫該運算子並已驗證的樣例)

• poc_active_contours — py -3.11 examples/poc_active_contours.py

型別可銜接的下一個運算子(可接受 table 作為輸入)

class_ndim_norm

同類別(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 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

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