Struct TPixelLabelInfoBase

Inheritance Relationships

Derived Type

Struct Documentation

struct TPixelLabelInfoBase

Virtual interface to all pixel-label semantic information structs.

See CObservation3DRangeScan::pixelLabels

Subclassed by mrpt::obs::TPixelLabelInfo< BYTES_REQUIRED_ >

Public Types

using Ptr = std::shared_ptr<TPixelLabelInfoBase>

Used in CObservation3DRangeScan::pixelLabels

using TMapLabelID2Name = std::map<uint32_t, std::string>

Public Functions

inline TPixelLabelInfoBase(unsigned int BITFIELD_BYTES_)
virtual ~TPixelLabelInfoBase()
inline const std::string &getLabelName(unsigned int label_idx) const
inline void setLabelName(unsigned int label_idx, const std::string &name)
inline int checkLabelNameExistence(const std::string &name) const

Check the existence of a label by returning its associated index. -1 if it does not exist.

virtual void setSize(const int NROWS, const int NCOLS) = 0

Resizes the matrix pixelLabels to the given size, setting all bitfields to zero (that is, all pixels are assigned NONE category).

virtual void setLabel(const int row, const int col, uint8_t label_idx) = 0

Mark the pixel(row,col) as classified in the category label_idx, which may be in the range 0 to MAX_NUM_LABELS-1 Note that 0 is a valid label index, it does not mean “no label”

See also

unsetLabel, unsetAll

virtual void getLabels(const int row, const int col, uint8_t &labels) = 0
virtual void unsetLabel(const int row, const int col, uint8_t label_idx) = 0

For the pixel(row,col), removes its classification into the category label_idx, which may be in the range 0 to 7 Note that 0 is a valid label index, it does not mean “no label”

See also

setLabel, unsetAll

virtual void unsetAll(const int row, const int col, uint8_t label_idx) = 0

Removes all categories for pixel(row,col)

See also

setLabel, unsetLabel

virtual bool checkLabel(const int row, const int col, uint8_t label_idx) const = 0

Checks whether pixel(row,col) has been classified into category label_idx, which may be in the range 0 to 7

See also

unsetLabel, unsetAll

void writeToStream(mrpt::serialization::CArchive &out) const

Public Members

TMapLabelID2Name pixelLabelNames

The ‘semantic’ or human-friendly name of the i’th bit in pixelLabels(r,c) can be found in pixelLabelNames[i] as a std::string

const uint8_t BITFIELD_BYTES

Minimum number of bytes required to hold MAX_NUM_DIFFERENT_LABELS bits.

Public Static Functions

static TPixelLabelInfoBase *readAndBuildFromStream(mrpt::serialization::CArchive &in)

Protected Functions

virtual void internal_readFromStream(mrpt::serialization::CArchive &in) = 0
virtual void internal_writeToStream(mrpt::serialization::CArchive &out) const = 0
virtual void Print(std::ostream&) const = 0

Friends

inline friend std::ostream &operator<<(std::ostream &out, const TPixelLabelInfoBase &obj)

std stream interface