pub struct RomeoParams {Show 15 fields
pub phase_coherence: bool,
pub phase_gradient_coherence: bool,
pub phase_linearity: bool,
pub mag_coherence: bool,
pub mag_weight: bool,
pub mag_weight2: bool,
pub bestpath: bool,
pub template: usize,
pub individual: bool,
pub correct_global: bool,
pub temporal_uncertain_unwrapping: f64,
pub max_seeds: u8,
pub merge_regions: bool,
pub correct_regions: bool,
pub wrap_addition: f64,
}Expand description
Parameters for ROMEO phase unwrapping.
Weight components can be toggled individually. Each multiplies into the
final edge weight as 0.1 + 0.9 * component_value.
The default enables phase coherence, phase gradient coherence,
phase linearity, and magnitude coherence (equivalent to :romeo in ROMEO.jl).
Fields§
§phase_coherence: boolPhase coherence: 1 - |wrap(Δφ)| / π. Always recommended. (default: true)
phase_gradient_coherence: boolPhase gradient coherence: consistency between echo pairs. Needs multi-echo data (phase2 + TEs). Automatically disabled if unavailable. (default: true)
phase_linearity: boolPhase linearity: second-derivative smoothness along each edge. (default: true)
mag_coherence: boolMagnitude coherence: (min/max)² of neighbor magnitudes. (default: true)
mag_weight: boolMagnitude weight: penalizes low-signal voxels relative to the 95th percentile. (default: false)
mag_weight2: boolMagnitude weight 2: penalizes abnormally high signal (flow artifacts). (default: false)
bestpath: boolUse Best-path weights (Abdul-Rahman) instead of ROMEO weights. When true, the individual weight flags above are ignored. (default: false)
template: usizeTemplate echo index for spatial unwrapping, 0-indexed (default: 0). Only used for multi-echo template-based unwrapping.
individual: boolUnwrap each echo individually instead of template-based (default: false).
correct_global: boolCorrect global 2π offsets between echoes (default: false). Recommended when using individual mode.
temporal_uncertain_unwrapping: f64Quality threshold for re-unwrapping uncertain voxels after temporal unwrapping. Range [0, 1], set to 0 to disable. (default: 0.5)
max_seeds: u8Maximum number of seed regions (default: 1, max: 255).
merge_regions: boolMerge neighboring regions after unwrapping (default: false).
correct_regions: boolCorrect each region’s median to nearest 0 by adding n·2π (default: false).
wrap_addition: f64Additional phase tolerance beyond π for neighbor differences. Range [0, π]. (default: 0.0)
Implementations§
Source§impl RomeoParams
impl RomeoParams
Sourcepub fn from_weight_type(wt: RomeoWeightType) -> Self
pub fn from_weight_type(wt: RomeoWeightType) -> Self
Create params matching a ROMEO.jl weight type preset.
Sourcepub fn weight_flags(&self) -> [bool; 6]
pub fn weight_flags(&self) -> [bool; 6]
Convert the boolean fields to the 6-element flag array used internally.
Trait Implementations§
Source§impl Clone for RomeoParams
impl Clone for RomeoParams
Source§fn clone(&self) -> RomeoParams
fn clone(&self) -> RomeoParams
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RomeoParams
impl Debug for RomeoParams
Source§impl Default for RomeoParams
impl Default for RomeoParams
Auto Trait Implementations§
impl Freeze for RomeoParams
impl RefUnwindSafe for RomeoParams
impl Send for RomeoParams
impl Sync for RomeoParams
impl Unpin for RomeoParams
impl UnsafeUnpin for RomeoParams
impl UnwindSafe for RomeoParams
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