pub struct SdfParams {
pub sigma1: f64,
pub sigma2: f64,
pub lower_lim: f64,
pub curv_constant: f64,
pub use_curvature: bool,
pub vessel_proximity: bool,
}Expand description
Parameters for SDF background field removal
There is no indent/closing radius: the reference QSMART_SDF.m builds an indent mask from
sdf_sp_radius but never passes it to sdf_curvature.m, so the radius has no effect.
Fields§
§sigma1: f64Sigma parameter for initial proximity map (default 10 for stage 1, 8 for stage 2)
sigma2: f64Sigma parameter for vasculature proximity (default 0 for stage 1, 2 for stage 2)
lower_lim: f64Lower limit for clamping proximity values (default 0.6)
curv_constant: f64Scaling constant for curvature (default 500)
use_curvature: boolWhether to use curvature-based edge refinement
vessel_proximity: boolWhether to weight the proximity map by the vessel proximity (the Gaussian of vasc_only
with width sigma2). sdf_curvature.m does this in stage 2 only (if stage==2, l. 17);
stage 1 passes no vessels and skips it, though its sigma2 is 10. (Multiplying stage 1 by
the Gaussian of all-ones, as QSM.rs did before, changes the proximity by an ulp and, on
QSM-CI’s full-size cases, no smoothing width.)
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SdfParams
impl RefUnwindSafe for SdfParams
impl Send for SdfParams
impl Sync for SdfParams
impl Unpin for SdfParams
impl UnsafeUnpin for SdfParams
impl UnwindSafe for SdfParams
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<T> CloneAny for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more