MRPT  1.9.9
mrpt::obs::CObservation3DRangeScan::TPixelLabelInfo< BYTES_REQUIRED_ > Struct Template Reference

Detailed Description

template<unsigned int BYTES_REQUIRED_>
struct mrpt::obs::CObservation3DRangeScan::TPixelLabelInfo< BYTES_REQUIRED_ >

Definition at line 624 of file CObservation3DRangeScan.h.

#include <mrpt/obs/CObservation3DRangeScan.h>

Inheritance diagram for mrpt::obs::CObservation3DRangeScan::TPixelLabelInfo< BYTES_REQUIRED_ >:
Inheritance graph

Public Types

enum  { BYTES_REQUIRED = BYTES_REQUIRED_ }
 
using Ptr = std::shared_ptr< TPixelLabelInfo >
 
using bitmask_t = typename mrpt::uint_select_by_bytecount< BYTES_REQUIRED >::type
 Automatically-determined integer type of the proper size such that all labels fit as one bit (max: 64) More...
 
using TPixelLabelMatrix = Eigen::Matrix< bitmask_t, Eigen::Dynamic, Eigen::Dynamic >
 Each pixel may be assigned between 0 and MAX_NUM_LABELS-1 'labels' by setting to 1 the corresponding i'th bit [0,MAX_NUM_LABELS-1] in the byte in pixelLabels(r,c). More...
 
using TMapLabelID2Name = std::map< uint32_t, std::string >
 

Public Member Functions

void setSize (const int NROWS, const int NCOLS) override
 Resizes the matrix pixelLabels to the given size, setting all bitfields to zero (that is, all pixels are assigned NONE category). More...
 
void setLabel (const int row, const int col, uint8_t label_idx) override
 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". More...
 
void getLabels (const int row, const int col, uint8_t &labels) override
 
void unsetLabel (const int row, const int col, uint8_t label_idx) override
 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". More...
 
void unsetAll (const int row, const int col, uint8_t label_idx) override
 Removes all categories for pixel(row,col) More...
 
bool checkLabel (const int row, const int col, uint8_t label_idx) const override
 Checks whether pixel(row,col) has been clasified into category label_idx, which may be in the range 0 to 7. More...
 
 TPixelLabelInfo ()
 
const std::stringgetLabelName (unsigned int label_idx) const
 
void setLabelName (unsigned int label_idx, const std::string &name)
 
int checkLabelNameExistence (const std::string &name) const
 Check the existence of a label by returning its associated index. More...
 
void writeToStream (mrpt::serialization::CArchive &out) const
 

Static Public Member Functions

static TPixelLabelInfoBasereadAndBuildFromStream (mrpt::serialization::CArchive &in)
 

Public Attributes

TPixelLabelMatrix pixelLabels
 
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. More...
 
const uint8_t BITFIELD_BYTES
 Minimum number of bytes required to hold MAX_NUM_DIFFERENT_LABELS bits. More...
 

Protected Member Functions

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

Member Typedef Documentation

◆ bitmask_t

template<unsigned int BYTES_REQUIRED_>
using mrpt::obs::CObservation3DRangeScan::TPixelLabelInfo< BYTES_REQUIRED_ >::bitmask_t = typename mrpt::uint_select_by_bytecount<BYTES_REQUIRED>::type

Automatically-determined integer type of the proper size such that all labels fit as one bit (max: 64)

Definition at line 635 of file CObservation3DRangeScan.h.

◆ Ptr

template<unsigned int BYTES_REQUIRED_>
using mrpt::obs::CObservation3DRangeScan::TPixelLabelInfo< BYTES_REQUIRED_ >::Ptr = std::shared_ptr<TPixelLabelInfo>

Definition at line 626 of file CObservation3DRangeScan.h.

◆ TMapLabelID2Name

◆ TPixelLabelMatrix

template<unsigned int BYTES_REQUIRED_>
using mrpt::obs::CObservation3DRangeScan::TPixelLabelInfo< BYTES_REQUIRED_ >::TPixelLabelMatrix = Eigen::Matrix<bitmask_t, Eigen::Dynamic, Eigen::Dynamic>

Each pixel may be assigned between 0 and MAX_NUM_LABELS-1 'labels' by setting to 1 the corresponding i'th bit [0,MAX_NUM_LABELS-1] in the byte in pixelLabels(r,c).

That is, each pixel is assigned an 8*BITFIELD_BYTES bit-wide bitfield of possible categories.

See also
hasPixelLabels

Definition at line 646 of file CObservation3DRangeScan.h.

Member Enumeration Documentation

◆ anonymous enum

template<unsigned int BYTES_REQUIRED_>
anonymous enum
Enumerator
BYTES_REQUIRED 

Definition at line 627 of file CObservation3DRangeScan.h.

Constructor & Destructor Documentation

◆ TPixelLabelInfo()

template<unsigned int BYTES_REQUIRED_>
mrpt::obs::CObservation3DRangeScan::TPixelLabelInfo< BYTES_REQUIRED_ >::TPixelLabelInfo ( )
inline

Definition at line 679 of file CObservation3DRangeScan.h.

Member Function Documentation

◆ checkLabel()

template<unsigned int BYTES_REQUIRED_>
bool mrpt::obs::CObservation3DRangeScan::TPixelLabelInfo< BYTES_REQUIRED_ >::checkLabel ( const int  row,
const int  col,
uint8_t  label_idx 
) const
inlineoverridevirtual

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

See also
unsetLabel, unsetAll

Implements mrpt::obs::CObservation3DRangeScan::TPixelLabelInfoBase.

Definition at line 671 of file CObservation3DRangeScan.h.

References mrpt::obs::CObservation3DRangeScan::TPixelLabelInfo< BYTES_REQUIRED_ >::pixelLabels.

◆ checkLabelNameExistence()

int mrpt::obs::CObservation3DRangeScan::TPixelLabelInfoBase::checkLabelNameExistence ( const std::string name) const
inlineinherited

Check the existence of a label by returning its associated index.

-1 if it does not exist.

Definition at line 556 of file CObservation3DRangeScan.h.

References mrpt::obs::CObservation3DRangeScan::TPixelLabelInfoBase::pixelLabelNames.

◆ getLabelName()

const std::string& mrpt::obs::CObservation3DRangeScan::TPixelLabelInfoBase::getLabelName ( unsigned int  label_idx) const
inlineinherited

◆ getLabels()

template<unsigned int BYTES_REQUIRED_>
void mrpt::obs::CObservation3DRangeScan::TPixelLabelInfo< BYTES_REQUIRED_ >::getLabels ( const int  row,
const int  col,
uint8_t labels 
)
inlineoverridevirtual

◆ internal_readFromStream()

template<unsigned int BYTES_REQUIRED_>
void CObservation3DRangeScan::TPixelLabelInfo::internal_readFromStream ( mrpt::serialization::CArchive in)
overrideprotectedvirtual

◆ internal_writeToStream()

template<unsigned int BYTES_REQUIRED_>
void CObservation3DRangeScan::TPixelLabelInfo::internal_writeToStream ( mrpt::serialization::CArchive out) const
overrideprotectedvirtual

◆ Print()

◆ readAndBuildFromStream()

◆ setLabel()

template<unsigned int BYTES_REQUIRED_>
void mrpt::obs::CObservation3DRangeScan::TPixelLabelInfo< BYTES_REQUIRED_ >::setLabel ( const int  row,
const int  col,
uint8_t  label_idx 
)
inlineoverridevirtual

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

Implements mrpt::obs::CObservation3DRangeScan::TPixelLabelInfoBase.

Definition at line 653 of file CObservation3DRangeScan.h.

References mrpt::obs::CObservation3DRangeScan::TPixelLabelInfo< BYTES_REQUIRED_ >::pixelLabels.

◆ setLabelName()

void mrpt::obs::CObservation3DRangeScan::TPixelLabelInfoBase::setLabelName ( unsigned int  label_idx,
const std::string name 
)
inlineinherited

◆ setSize()

template<unsigned int BYTES_REQUIRED_>
void mrpt::obs::CObservation3DRangeScan::TPixelLabelInfo< BYTES_REQUIRED_ >::setSize ( const int  NROWS,
const int  NCOLS 
)
inlineoverridevirtual

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

Implements mrpt::obs::CObservation3DRangeScan::TPixelLabelInfoBase.

Definition at line 649 of file CObservation3DRangeScan.h.

References mrpt::obs::CObservation3DRangeScan::TPixelLabelInfo< BYTES_REQUIRED_ >::pixelLabels.

◆ unsetAll()

template<unsigned int BYTES_REQUIRED_>
void mrpt::obs::CObservation3DRangeScan::TPixelLabelInfo< BYTES_REQUIRED_ >::unsetAll ( const int  row,
const int  col,
uint8_t  label_idx 
)
inlineoverridevirtual

◆ unsetLabel()

template<unsigned int BYTES_REQUIRED_>
void mrpt::obs::CObservation3DRangeScan::TPixelLabelInfo< BYTES_REQUIRED_ >::unsetLabel ( const int  row,
const int  col,
uint8_t  label_idx 
)
inlineoverridevirtual

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

Implements mrpt::obs::CObservation3DRangeScan::TPixelLabelInfoBase.

Definition at line 662 of file CObservation3DRangeScan.h.

References mrpt::obs::CObservation3DRangeScan::TPixelLabelInfo< BYTES_REQUIRED_ >::pixelLabels.

◆ writeToStream()

void plib::writeToStream ( mrpt::serialization::CArchive out) const
inherited

Definition at line 1211 of file CObservation3DRangeScan.cpp.

Member Data Documentation

◆ BITFIELD_BYTES

const uint8_t mrpt::obs::CObservation3DRangeScan::TPixelLabelInfoBase::BITFIELD_BYTES
inherited

Minimum number of bytes required to hold MAX_NUM_DIFFERENT_LABELS bits.

Definition at line 613 of file CObservation3DRangeScan.h.

◆ pixelLabelNames

TMapLabelID2Name mrpt::obs::CObservation3DRangeScan::TPixelLabelInfoBase::pixelLabelNames
inherited

◆ pixelLabels




Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 7d5e6d718 Fri Aug 24 01:51:28 2018 +0200 at lun nov 2 08:35:50 CET 2020