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`(反復ごとに変わった画素数)。
• 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 作为输入)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.