Struct rerun::components::TensorData

source ·
#[repr(transparent)]
pub struct TensorData(pub TensorData);
Expand description

Component: A multi-dimensional Tensor of data.

The number of dimensions and their respective lengths is specified by the shape field. The dimensions are ordered from outermost to innermost. For example, in the common case of a 2D RGB Image, the shape would be [height, width, channel].

These dimensions are combined with an index to look up values from the buffer field, which stores a contiguous array of typed values.

Note that the buffer may be encoded in a compressed format such as jpeg or in a format with downsampled chroma, such as NV12 or YUY2. For file formats, the shape is used as a hint, for chroma downsampled format the shape has to be the shape of the decoded image.

Tuple Fields§

§0: TensorData

Methods from Deref<Target = TensorData>§

source

pub fn shape(&self) -> &[TensorDimension]

The shape of the tensor, including optional dimension names.

source

pub fn shape_short(&self) -> &[TensorDimension]

Returns the shape of the tensor with all leading & trailing dimensions of size 1 ignored.

If all dimension sizes are one, this returns only the first dimension.

source

pub fn num_dim(&self) -> usize

The number of dimensions of the tensor.

An image tensor will usually have two (height, width) or three (height, width, channels) dimensions.

source

pub fn image_height_width_channels(&self) -> Option<[u64; 3]>

If the tensor can be interpreted as an image, return the height, width, and channels/depth of it.

source

pub fn is_shaped_like_an_image(&self) -> bool

Returns true if the tensor can be interpreted as an image.

source

pub fn is_vector(&self) -> bool

Returns true if either all dimensions have size 1 or only a single dimension has a size larger than 1.

Empty tensors return false.

source

pub fn get_with_image_coords( &self, x: u64, y: u64, channel: u64 ) -> Option<TensorElement>

Query with x, y, channel indices.

Allows to query values for any image-like tensor even if it has more or less dimensions than 3. (useful for sampling e.g. N x M x C x 1 tensor which is a valid image)

source

pub fn get(&self, index: &[u64]) -> Option<TensorElement>

Get the value of the element at the given index.

Return None if out-of-bounds, or if the tensor is encoded (e.g. TensorBuffer::Jpeg).

source

pub fn get_nv12_pixel(&self, x: u64, y: u64) -> Option<[u8; 3]>

Returns decoded RGB8 value at the given image coordinates if this tensor is a NV12 image.

If the tensor is not TensorBuffer::Nv12, None is returned.

It is undefined what happens if the coordinate is out-of-bounds.

source

pub fn get_yuy2_pixel(&self, x: u64, y: u64) -> Option<[u8; 3]>

Returns decoded RGB8 value at the given image coordinates if this tensor is a YUY2 image.

If the tensor is not TensorBuffer::Yuy2, None is returned.

It is undefined what happens if the coordinate is out-of-bounds.

source

pub fn dtype(&self) -> TensorDataType

The datatype of the tensor.

source

pub fn size_in_bytes(&self) -> usize

The size of the tensor data, in bytes.

source

pub fn could_be_dynamic_image(&self) -> bool

Predicts if Self::to_dynamic_image is likely to succeed, without doing anything expensive

source

pub fn to_dynamic_image(&self) -> Result<DynamicImage, TensorImageSaveError>

Try to convert an image-like tensor into an image::DynamicImage.

Trait Implementations§

source§

impl Borrow<TensorData> for TensorData

source§

fn borrow(&self) -> &TensorData

Immutably borrows from an owned value. Read more
source§

impl Clone for TensorData

source§

fn clone(&self) -> TensorData

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for TensorData

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Deref for TensorData

§

type Target = TensorData

The resulting type after dereferencing.
source§

fn deref(&self) -> &TensorData

Dereferences the value.
source§

impl EntityDataUi for TensorData

source§

fn entity_data_ui( &self, ctx: &ViewerContext<'_>, ui: &mut Ui, ui_layout: UiLayout, entity_path: &EntityPath, query: &LatestAtQuery, db: &EntityDb )

If you need to lookup something in the data store, use the given query to do so.
source§

impl<T> From<T> for TensorData
where T: Into<TensorData>,

source§

fn from(v: T) -> TensorData

Converts to this type from the input type.
source§

impl Loggable for TensorData

§

type Name = ComponentName

source§

fn name() -> <TensorData as Loggable>::Name

The fully-qualified name of this loggable, e.g. rerun.datatypes.Vec2D.
source§

fn arrow_datatype() -> DataType

The underlying arrow2::datatypes::DataType, excluding datatype extensions.
source§

fn to_arrow_opt<'a>( data: impl IntoIterator<Item = Option<impl Into<Cow<'a, TensorData>>>> ) -> Result<Box<dyn Array>, SerializationError>
where TensorData: Clone + 'a,

Given an iterator of options of owned or reference values to the current Loggable, serializes them into an Arrow array. The Arrow array’s datatype will match Loggable::arrow_field. Read more
source§

fn from_arrow_opt( arrow_data: &(dyn Array + 'static) ) -> Result<Vec<Option<TensorData>>, DeserializationError>

Given an Arrow array, deserializes it into a collection of optional Loggables. Read more
source§

fn extended_arrow_datatype() -> DataType

The underlying arrow2::datatypes::DataType, including datatype extensions. Read more
source§

fn arrow_field() -> Field

The underlying arrow2::datatypes::Field, including datatype extensions. Read more
source§

fn to_arrow<'a>( data: impl IntoIterator<Item = impl Into<Cow<'a, Self>>> ) -> Result<Box<dyn Array>, SerializationError>
where Self: 'a,

Given an iterator of owned or reference values to the current Loggable, serializes them into an Arrow array. The Arrow array’s datatype will match Loggable::arrow_field. Read more
source§

fn from_arrow( data: &(dyn Array + 'static) ) -> Result<Vec<Self>, DeserializationError>

Given an Arrow array, deserializes it into a collection of Loggables. Read more
source§

impl PartialEq for TensorData

source§

fn eq(&self, other: &TensorData) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl SizeBytes for TensorData

source§

fn heap_size_bytes(&self) -> u64

Returns the total size of self on the heap, in bytes.
source§

fn is_pod() -> bool

Is Self just plain old data? Read more
source§

fn total_size_bytes(&self) -> u64

Returns the total size of self in bytes, accounting for both stack and heap space.
source§

fn stack_size_bytes(&self) -> u64

Returns the total size of self on the stack, in bytes. Read more
source§

impl StructuralPartialEq for TensorData

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> Downcast<T> for T

source§

fn downcast(&self) -> &T

source§

impl<T> Downcast for T
where T: Any,

source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert 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>

Convert 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)

Convert &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)

Convert &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
where T: Any + Send + Sync,

source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
source§

impl<L> LoggableBatch for L
where L: Clone + Loggable,

§

type Name = <L as Loggable>::Name

source§

fn name(&self) -> <L as LoggableBatch>::Name

The fully-qualified name of this batch, e.g. rerun.datatypes.Vec2D.
source§

fn num_instances(&self) -> usize

The number of component instances stored into this batch.
source§

fn arrow_field(&self) -> Field

The underlying arrow2::datatypes::Field, including datatype extensions.
source§

fn to_arrow(&self) -> Result<Box<dyn Array>, SerializationError>

Serializes the batch into an Arrow array.
source§

impl<Src, Dst> LosslessTryInto<Dst> for Src
where Dst: LosslessTryFrom<Src>,

source§

fn lossless_try_into(self) -> Option<Dst>

Performs the conversion.
source§

impl<Src, Dst> LossyInto<Dst> for Src
where Dst: LossyFrom<Src>,

source§

fn lossy_into(self) -> Dst

Performs the conversion.
source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> Upcast<T> for T

source§

fn upcast(&self) -> Option<&T>

source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<L> Component for L
where L: Loggable<Name = ComponentName>,

source§

impl<C> ComponentBatch for C
where C: Component,

source§

impl<T> WasmNotSend for T
where T: Send,

source§

impl<T> WasmNotSendSync for T

source§

impl<T> WasmNotSync for T
where T: Sync,