contour op• Data kinds: image2d → table
• Call: import fullseye as fs; fs.ledger.gvf_field(image, *, mu: 'float' = 0.2, sigma: 'float' = 1.0, method: 'str' = 'direct', n_iter: 'int' = 2000, dt: 'Optional[float]' = None, edge_map=None) -> 'Dict[str, object]' (to call the implementation directly, import segcontour; segcontour.gvf_field(image, *, mu: 'float' = 0.2, sigma: 'float' = 1.0, method: 'str' = 'direct', n_iter: 'int' = 2000, dt: 'Optional[float]' = None, edge_map=None) -> 'Dict[str, object]'; from the registry, opssegmentation.get("gvf_field"))
Gradient vector flow (Xu–Prince 1998): the field (u, v) that smoothly diffuses the gradient of the edge map f away from the edges (gvf_field).
Minimisation of E = ∬ μ(u_x² + u_y² + v_x² + v_y²) + |∇f|² |(u, v) − ∇f|². Euler equations μ∇²u − (u − f_x)(f_x² + f_y²) = 0, μ∇²v − (v − f_y)(f_x² + f_y²) = 0 (linear). method="iterate" = the paper's time evolution u ← u + Δt(μ∇²u − b(u − f_x)), b = |∇f|² (explicit, Δt ≤ 1/(4μ + max b)). method="direct" = solves the same discrete equation (μL − diag b) u = −b f_x directly with a sparse matrix (the steady-state solution itself). The edge map f is by default |∇(G_σ * I)| normalised to a maximum of 1 (it may also be given directly via edge_map). Boundary is Neumann. u = component in the column (x) direction, v = component in the row (y) direction.
Returns: u / v, edge_map, fx / fy, residual_max (maximum residual of the Euler equations), residual_rel (residual / max(b |∇f|)), n_iter, method, mu. If f is flat, the field is 0 (residual 0).
• halcon_segmentation family guide
• active_contours_and_level_sets — Variational and active contours, level sets — which contour stops where, and what it guarantees
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
• poc_active_contours — py -3.11 examples/poc_active_contours.py
table as input)contour)snake_evolve · chan_vese_energy · chan_vese_evolve · morph_chan_vese · morph_geodesic_ac · edge_stop_g · level_set_reinit · drle_evolve
*Provenance: segcontour.py — SEGMENTATION operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.