pub enum UnwrapMethod {
Romeo,
Laplacian,
BestPath,
Prelude(PreludeParams),
MediRegionGrowing,
}Expand description
Phase unwrapping method selection.
These select unwrappers only. Methods that unwrap and remove the background field
(HARPERELLA, iHARPERELLA) live in crate::bgremove.
Variants§
Romeo
Laplacian
Laplacian unwrapping with LaplacianSolver::Dct (Neumann boundary on the array); see
laplacian_unwrap. Unwraps only — the background field is left alone. Call
laplacian_unwrap directly for LaplacianSolver::Fft.
BestPath
Best path (3D-SRNCP); see unwrap_bestpath. The original Abdul-Rahman
algorithm, not ROMEO run with best-path weights — for that, set
RomeoParams::bestpath.
Prelude(PreludeParams)
PRELUDE (Jenkinson) with its settings; see unwrap_prelude. The unwrapper the
literature benchmarks against. It carries its PreludeParams so that every caller
that takes an UnwrapMethod (MCPC-3D-S’s HIP unwrapping, the slice-wise unwrapper) runs
it with the caller’s settings, not silently with the defaults.
MediRegionGrowing
MEDI’s region growing; see unwrap_medi_region_growing. The mask is not used (MEDI’s
unwrapPhase takes none) and the magnitude is its quality map, so the callers that take
an UnwrapMethod pass theirs: MCPC-3D-S’s HIP unwrapping its weight sqrt(|HIP|), the
slice-wise unwrapper each slice’s magnitude (required there).
Trait Implementations§
Source§impl Clone for UnwrapMethod
impl Clone for UnwrapMethod
Source§fn clone(&self) -> UnwrapMethod
fn clone(&self) -> UnwrapMethod
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 UnwrapMethod
Source§impl Debug for UnwrapMethod
impl Debug for UnwrapMethod
Source§impl PartialEq for UnwrapMethod
impl PartialEq for UnwrapMethod
impl StructuralPartialEq for UnwrapMethod
Auto Trait Implementations§
impl Freeze for UnwrapMethod
impl RefUnwindSafe for UnwrapMethod
impl Send for UnwrapMethod
impl Sync for UnwrapMethod
impl Unpin for UnwrapMethod
impl UnsafeUnpin for UnwrapMethod
impl UnwindSafe for UnwrapMethod
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