pub(crate) fn vsharp_with_radii(
field: &[f64],
mask: &[u8],
grid: &Grid,
radii: &[f64],
deconvolve: Option<f64>,
ball: VsharpBall,
progress: impl FnMut(usize, usize),
) -> (Vec<f64>, Vec<u8>)Expand description
V-SHARP with an explicit list of SMV kernel radii (mm).
Internal entry point; the public vsharp wrapper derives the radii
from VsharpParams. deconvolve is the TSVD threshold of the final
deconvolution, or None to return the SMV high-passed field undeconvolved. ball picks
the SMV kernel and its edge test.
Like QSM.jl’s _sharp! for a radius vector (src/bgremove/sharp.jl, fde4b92), it works in
the mask’s bounding box zero-padded for the largest radius (SmvBox), so the
deconvolution is periodic on that box as in QSM.jl.