Rerun C++ SDK
Loading...
Searching...
No Matches
rerun::archetypes::SegmentationImage Struct Reference

Archetype: An image made up of integer class-ids. More...

#include <rerun/archetypes/segmentation_image.hpp>

Public Types

using IndicatorComponent = rerun::components::IndicatorComponent< IndicatorComponentName >
 Indicator component, used to identify the archetype when converting to a list of components.
 

Public Member Functions

 SegmentationImage (Collection< datatypes::TensorDimension > shape, datatypes::TensorBuffer buffer)
 New segmentation image from height/width and tensor buffer.
 
 SegmentationImage (components::TensorData data_)
 New segmentation image from tensor data.
 
template<typename TElement >
 SegmentationImage (Collection< datatypes::TensorDimension > shape, const TElement *data_)
 New segmentation image from dimensions and pointer to segmentation image data.
 
 SegmentationImage (SegmentationImage &&other)=default
 
SegmentationImage with_opacity (rerun::components::Opacity _opacity) &&
 Opacity of the image, useful for layering the segmentation image on top of another image.
 
SegmentationImage with_draw_order (rerun::components::DrawOrder _draw_order) &&
 An optional floating point value that specifies the 2D drawing order.
 

Public Attributes

rerun::components::TensorData data
 The image data. Should always be a 2-dimensional tensor.
 
std::optional< rerun::components::Opacityopacity
 Opacity of the image, useful for layering the segmentation image on top of another image.
 
std::optional< rerun::components::DrawOrderdraw_order
 An optional floating point value that specifies the 2D drawing order.
 

Static Public Attributes

static constexpr const char IndicatorComponentName []
 

Detailed Description

Archetype: An image made up of integer class-ids.

The shape of the TensorData must be mappable to an HxW tensor. Each pixel corresponds to a class-id that will be mapped to a color based on annotation context.

In the case of floating point images, the label will be looked up based on rounding to the nearest integer value.

Leading and trailing unit-dimensions are ignored, so that 1x640x480x1 is treated as a 640x480 image.

Since the underlying rerun::datatypes::TensorData uses rerun::Collection internally, data can be passed in without a copy from raw pointers or by reference from std::vector/std::array/c-arrays. If needed, this "borrow-behavior" can be extended by defining your own rerun::CollectionAdapter.

Example

Simple segmentation image

image

#include <rerun.hpp>
#include <algorithm> // std::fill_n
#include <vector>
int main() {
const auto rec = rerun::RecordingStream("rerun_example_segmentation_image");
rec.spawn().exit_on_failure();
// Create a segmentation image
const int HEIGHT = 8;
const int WIDTH = 12;
std::vector<uint8_t> data(WIDTH * HEIGHT, 0);
for (auto y = 0; y <4; ++y) { // top half
std::fill_n(data.begin() + y * WIDTH, 6, static_cast<uint8_t>(1)); // left half
}
for (auto y = 4; y <8; ++y) { // bottom half
std::fill_n(data.begin() + y * WIDTH + 6, 6, static_cast<uint8_t>(2)); // right half
}
// create an annotation context to describe the classes
rec.log_static(
"/",
rerun::AnnotationInfo(1, "red", rerun::Rgba32(255, 0, 0)),
rerun::AnnotationInfo(2, "green", rerun::Rgba32(0, 255, 0)),
})
);
rec.log("image", rerun::SegmentationImage({HEIGHT, WIDTH}, data));
}
A RecordingStream handles everything related to logging data into Rerun.
Definition recording_stream.hpp:57
Archetype: The AnnotationContext provides additional information on how to display entities.
Definition annotation_context.hpp:63
Archetype: An image made up of integer class-ids.
Definition segmentation_image.hpp:74
rerun::components::TensorData data
The image data. Should always be a 2-dimensional tensor.
Definition segmentation_image.hpp:76
Datatype: Annotation info annotating a class id or key-point id.
Definition annotation_info.hpp:25
Datatype: An RGBA color with unmultiplied/separate alpha, in sRGB gamma space with linear alpha.
Definition rgba32.hpp:27

Constructor & Destructor Documentation

◆ SegmentationImage() [1/3]

rerun::archetypes::SegmentationImage::SegmentationImage ( Collection< datatypes::TensorDimension shape,
datatypes::TensorBuffer  buffer 
)
inline

New segmentation image from height/width and tensor buffer.

Parameters
shapeShape of the image. Calls Error::handle() if the tensor is not 2-dimensional Sets the dimension names to "height" and "width" if they are not specified.
bufferThe tensor buffer containing the segmentation image data.

◆ SegmentationImage() [2/3]

rerun::archetypes::SegmentationImage::SegmentationImage ( components::TensorData  data_)
explicit

New segmentation image from tensor data.

Parameters
data_The tensor buffer containing the segmentation image data. Sets the dimension names to "height" and "width" if they are not specified. Calls Error::handle() if the tensor is not 2-dimensional

◆ SegmentationImage() [3/3]

template<typename TElement >
rerun::archetypes::SegmentationImage::SegmentationImage ( Collection< datatypes::TensorDimension shape,
const TElement *  data_ 
)
inlineexplicit

New segmentation image from dimensions and pointer to segmentation image data.

Type must be one of the types supported by rerun::datatypes::TensorData.

Parameters
shapeShape of the image. Calls Error::handle() if the tensor is not 2-dimensional Sets the dimension names to "height", "width" and "channel" if they are not specified. Determines the number of elements expected to be in data.
data_Target of the pointer must outlive the archetype.

Member Function Documentation

◆ with_opacity()

SegmentationImage rerun::archetypes::SegmentationImage::with_opacity ( rerun::components::Opacity  _opacity) &&
inline

Opacity of the image, useful for layering the segmentation image on top of another image.

Defaults to 0.5 if there's any other images in the scene, otherwise 1.0.

◆ with_draw_order()

SegmentationImage rerun::archetypes::SegmentationImage::with_draw_order ( rerun::components::DrawOrder  _draw_order) &&
inline

An optional floating point value that specifies the 2D drawing order.

Objects with higher values are drawn on top of those with lower values.

Member Data Documentation

◆ opacity

std::optional<rerun::components::Opacity> rerun::archetypes::SegmentationImage::opacity

Opacity of the image, useful for layering the segmentation image on top of another image.

Defaults to 0.5 if there's any other images in the scene, otherwise 1.0.

◆ draw_order

std::optional<rerun::components::DrawOrder> rerun::archetypes::SegmentationImage::draw_order

An optional floating point value that specifies the 2D drawing order.

Objects with higher values are drawn on top of those with lower values.

◆ IndicatorComponentName

constexpr const char rerun::archetypes::SegmentationImage::IndicatorComponentName[]
staticconstexpr
Initial value:
=
"rerun.components.SegmentationImageIndicator"

The documentation for this struct was generated from the following file: