contour op• 資料種類:image2d × pairs → table
• 呼叫: import fullseye as fs; fs.ledger.snake_evolve(image, init_points, *, alpha: 'float' = 0.1, beta: 'float' = 0.1, gamma: 'float' = 1.0, external: 'str' = 'edge', w_line: 'float' = 0.0, w_edge: 'float' = 1.0, sigma: 'float' = 1.0, kappa: 'float' = 1.0, gvf=None, gvf_mu: 'float' = 0.2, max_px_move: 'Optional[float]' = None, n_iter: 'int' = 300, spline_order: 'int' = 3, tol: 'float' = 0.0, resample_every: 'int' = 0, record_every: 'int' = 0) -> 'Dict[str, object]'(要直接呼叫實作,import segcontour; segcontour.snake_evolve(image, init_points, *, alpha: 'float' = 0.1, beta: 'float' = 0.1, gamma: 'float' = 1.0, external: 'str' = 'edge', w_line: 'float' = 0.0, w_edge: 'float' = 1.0, sigma: 'float' = 1.0, kappa: 'float' = 1.0, gvf=None, gvf_mu: 'float' = 0.2, max_px_move: 'Optional[float]' = None, n_iter: 'int' = 300, spline_order: 'int' = 3, tol: 'float' = 0.0, resample_every: 'int' = 0, record_every: 'int' = 0) -> 'Dict[str, object]';從台帳取用則 opssegmentation.get("snake_evolve"))
離散 snake(Kass–Witkin–Terzopoulos 1988)的半隱式更新 x_t = (A + γI)^(-1)(γ x_(t-1) − f_x)(式 (19)(20))(snake_evolve)。
閉合 snake(週期邊界)的點 init_points(N, 2)= [row, col],N ≥ 5。內部能量 E_int = ½ Σ (α |v_(i+1) − v_i|² + β |v_(i+1) − 2v_i + v_(i−1)|²) = ½ xᵀ A x(隱式)。外力(顯式)由 external 選擇:
"edge" = 位勢 P = w_line · G_σ*I + w_edge · |∇(G_σ*I)|²,E_ext = −κ Σ P(v_i)(Kass 的 E_line 與 E_edge), "potential" = 把 image 直接作為 P 使用(為了傳入與第 2 實作(獨立實作)相同的 P), "gvf" = 力本身為 −κ (v, u)(GVF,把 gvf_field 的回傳傳給 gvf,或以 gvf_mu 在內部建立), "none" = 外力 0。P 以 spline_order 次的內插樣條(值與導數一致)取到點的位置上。給出 max_px_move 時把 1 次迭代的移動限制為 max_px_move · tanh(Δ)(與 skimage 相同。失去近端梯度的性質)。resample_every > 0 時每 k 次迭代依弧長重新等間隔布點(防止進入凹部時點變稀疏。能量的單調性在那一刻中斷)。點被截斷到影像範圍 [0, H−1] × [0, W−1] 內。
回傳值: points(N, 2)、mask(折線內部)、energy / energy_internal / energy_external(每次迭代, 開頭 = 初始。GVF 中外力的能量沒有定義,所以 total 與 external 為 NaN)、n_increase(能量增加的迭代次數,GVF 時為 None)、max_increase、lipschitz(κP 的黑塞矩陣的譜範數在網格上的最大值 = 外力梯度的 Lipschitz 常數的估計)、gamma_ge_lipschitz(γ ≥ L 時由下降引理保證單調不增)、radius_factor(外力 0 時圓在 1 次迭代中收縮 γ/(γ + λ_1) 的閉合式)、history(每 record_every 次的點)、n_iter、converged。
• 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)gvf_field · chan_vese_energy · chan_vese_evolve · morph_chan_vese · 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.