pub struct MotionAverage {
pub magnitude: Vec<f64>,
pub phase: Vec<f64>,
pub contributions: Vec<u32>,
pub rotation_spread_deg: f64,
}Expand description
A complex average of a motion-corrected series.
Averaging phase across volumes acquired at different head orientations averages phase
accumulated under different dipole-kernel orientations, so this is an approximation whose
error grows with MotionSeries::rotation_spread_deg. It is exactly right for repeats that
did not rotate, a good approximation for a degree or two, and the wrong tool once the spread
is large enough to matter — at which point the spread is itself the signal, and
CorrectedSeries with a per-volume bdir is the honest path.
Fields§
§magnitude: Vec<f64>Complex-mean magnitude on the reference grid.
phase: Vec<f64>Complex-mean wrapped phase on the reference grid.
contributions: Vec<u32>How many volumes of the series actually reached each reference voxel. 0 means no data,
not a zero measurement.
rotation_spread_deg: f64Rotation spread the average was taken over, in degrees — MotionSeries::rotation_spread_deg,
repeated here because it is the number that decides whether the average is trustworthy.
Trait Implementations§
Source§impl Clone for MotionAverage
impl Clone for MotionAverage
Source§fn clone(&self) -> MotionAverage
fn clone(&self) -> MotionAverage
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for MotionAverage
impl RefUnwindSafe for MotionAverage
impl Send for MotionAverage
impl Sync for MotionAverage
impl Unpin for MotionAverage
impl UnsafeUnpin for MotionAverage
impl UnwindSafe for MotionAverage
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