morph_geodesic_ac — SEGMENTATION contour op

• 数据种类:image2d × mask → table

• 调用: import fullseye as fs; fs.ledger.morph_geodesic_ac(gimage, init, *, n_iter: 'int' = 100, smoothing: 'int' = 1, threshold='auto', balloon: 'float' = 0.0, phase: 'int' = 0, record_every: 'int' = 0) -> 'Dict[str, object]'(要直接调用实现,import segcontour; segcontour.morph_geodesic_ac(gimage, init, *, n_iter: 'int' = 100, smoothing: 'int' = 1, threshold='auto', balloon: 'float' = 0.0, phase: 'int' = 0, record_every: 'int' = 0) -> 'Dict[str, object]';从台账取用则 opssegmentation.get("morph_geodesic_ac"))

用法

形态学测地主动轮廓(Márquez-Neila 等 2014 的 MorphGAC)。gimage = 在边缘处取小值的图像(edge_stop_g 的 g)(morph_geodesic_ac)。

1 次迭代 = 气球段(balloon > 0 时 3×3 膨胀,< 0 时腐蚀,只作用于 g > threshold/|balloon| 的像素)+ 引力段(∇g · ∇u > 0 的像素放到内侧,< 0 的放到外侧 = 把轮廓拉向 g 的谷)+ 平滑段(曲率算子 smoothing 次,交替)。threshold="auto" 为 g 的 40 % 分位点(与 skimage 相同)。陷阱(实测): 背景严格平坦时 g ≡ 1 的像素超过 40 %, 阈值 = 1,"g > 1/|balloon|" 的像素消失,气球一次也不起作用(轮廓停在初始位置)。模糊的拖尾使 g 成为 1 − 10⁻¹³ 的图像中会偶然起作用。对平坦的合成图像请用数值给出阈值。phase 与 morph_chan_vese 相同。

返回值: mask、threshold、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_chan_vese · 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.