pub struct PreludeParams {
pub num_phase_partitions: usize,
pub labelling: PreludeLabelling,
pub correct_global: bool,
}Expand description
Parameters for unwrap_prelude.
The defaults are FSL prelude’s: 8 partitions, regions labelled slice by slice on volumes
over 64 voxels in-plane. With them this module gives FSL’s default output (see the module
docs for the measured agreement).
Fields§
§num_phase_partitions: usizeNumber of equal bins the phase range [-π, π) is cut into when forming the
initial regions (default: 8, FSL prelude’s default, its -n; the report’s
worked example uses 6).
More partitions means narrower bins, so a connected component is less likely to contain a wrap — at the price of more, smaller regions and a longer merge. Fewer means larger regions that are more likely to straddle a wrap, which the merge cannot undo: a region is committed to a single offset by construction. Must be at least 1; at 1 every in-mask component is one region and nothing is unwrapped within it.
labelling: PreludeLabellingHow the initial regions are labelled (default: PreludeLabelling::Auto, FSL
prelude’s default, which is slice by slice on any in-vivo volume;
PreludeLabelling::Slices is prelude --labelslices, PreludeLabelling::Volume is
prelude -f).
correct_global: boolSubtract the median wrap count from the result so the unwrapped phase stays centred near the input range (default: true).
Without it each connected set of regions carries an arbitrary integer multiple
of 2π. The default is on because FSL’s prelude output has a median in-mask wrap count
of 0 on every volume measured (see the module docs), so this is what reproduces it; it
also gives a multi-echo caller echoes whose constants are already near each other
before whole turns are aligned between them. Same operation as
BestPathParams::correct_global and
RomeoParams::correct_global, which default to
false because their originals do not do it.
Trait Implementations§
Source§impl Clone for PreludeParams
impl Clone for PreludeParams
Source§fn clone(&self) -> PreludeParams
fn clone(&self) -> PreludeParams
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for PreludeParams
Source§impl Debug for PreludeParams
impl Debug for PreludeParams
Source§impl Default for PreludeParams
impl Default for PreludeParams
Source§impl PartialEq for PreludeParams
impl PartialEq for PreludeParams
Source§impl Serialize for PreludeParams
impl Serialize for PreludeParams
impl StructuralPartialEq for PreludeParams
Auto Trait Implementations§
impl Freeze for PreludeParams
impl RefUnwindSafe for PreludeParams
impl Send for PreludeParams
impl Sync for PreludeParams
impl Unpin for PreludeParams
impl UnsafeUnpin for PreludeParams
impl UnwindSafe for PreludeParams
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