Struct flydra2::Data2dDistortedRow
source · pub struct Data2dDistortedRow {Show 15 fields
pub camn: CamNum,
pub frame: i64,
pub timestamp: Option<FlydraFloatTimestampLocal<Triggerbox>>,
pub cam_received_timestamp: FlydraFloatTimestampLocal<HostClock>,
pub device_timestamp: Option<NonZero<u64>>,
pub block_id: Option<NonZero<u64>>,
pub x: f64,
pub y: f64,
pub area: f64,
pub slope: f64,
pub eccentricity: f64,
pub frame_pt_idx: u8,
pub cur_val: u8,
pub mean_val: f64,
pub sumsqf_val: f64,
}
Expand description
Feature detection data in raw camera coordinates.
Because these are in raw camera coordinates (and thus have not been undistorted with any lens distortion model), they are called “distorted”.
Note that in .braidz
files, subsequent rows on disk are not in general
monotonically increasing in frame number.
See the “Details about how data are processed online and saved for later
analysis” section in the “3D Tracking in Braid” chapter of the User’s
Guide for a description of why
these cannot be relied upon in .braidz
files to be monotonic.
Fields§
§camn: CamNum
The number of the camera.
frame: i64
The synchronized frame number.
This is very likely to be different than Self::block_id, the camera’s internal frame number, because Braid synchronizes the frames so that, e.g. “frame 10” occurred at the same instant across all cameras.
timestamp: Option<FlydraFloatTimestampLocal<Triggerbox>>
This is the trigger timestamp (if available).
cam_received_timestamp: FlydraFloatTimestampLocal<HostClock>
§device_timestamp: Option<NonZero<u64>>
Timestamp from the camera.
block_id: Option<NonZero<u64>>
Frame number from the camera.
Note that this is not the synchronized frame number, which is Self::frame.
x: f64
The X (horizontal) coordinate of the detection, in camera pixels.
y: f64
The Y (vertical) coordinate of the detection, in camera pixels.
area: f64
The area of the detection, in camera pixels^2.
slope: f64
The slope of the detection.
The orientation, modulo 𝜋, of the detection, is atan(slope)
.
eccentricity: f64
The eccentricity of the detection.
frame_pt_idx: u8
The index of this particular detection within a given frame.
Multiple detections can occur within a single frame, and each succesive detection will have a higher index.
cur_val: u8
§mean_val: f64
§sumsqf_val: f64
Trait Implementations§
source§impl Clone for Data2dDistortedRow
impl Clone for Data2dDistortedRow
source§fn clone(&self) -> Data2dDistortedRow
fn clone(&self) -> Data2dDistortedRow
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for Data2dDistortedRow
impl Debug for Data2dDistortedRow
source§impl<'de> Deserialize<'de> for Data2dDistortedRow
impl<'de> Deserialize<'de> for Data2dDistortedRow
source§fn deserialize<__D>(
__deserializer: __D
) -> Result<Data2dDistortedRow, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D
) -> Result<Data2dDistortedRow, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
source§impl From<Data2dDistortedRow> for Data2dDistortedRowF32
impl From<Data2dDistortedRow> for Data2dDistortedRowF32
source§fn from(orig: Data2dDistortedRow) -> Data2dDistortedRowF32
fn from(orig: Data2dDistortedRow) -> Data2dDistortedRowF32
source§impl Serialize for Data2dDistortedRow
impl Serialize for Data2dDistortedRow
source§fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for Data2dDistortedRow
impl RefUnwindSafe for Data2dDistortedRow
impl Send for Data2dDistortedRow
impl Sync for Data2dDistortedRow
impl Unpin for Data2dDistortedRow
impl UnwindSafe for Data2dDistortedRow
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
source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§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>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§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>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§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.source§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.source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 moresource§impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
source§fn lossless_try_into(self) -> Option<Dst>
fn lossless_try_into(self) -> Option<Dst>
source§impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
source§fn lossy_into(self) -> Dst
fn lossy_into(self) -> Dst
source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.