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 619 of file CObservation3DRangeScan.h.

#include <mrpt/obs/CObservation3DRangeScan.h>

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

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 = mrpt::math::CMatrixDynamic< bitmask_t >
 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 630 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 621 of file CObservation3DRangeScan.h.

◆ TMapLabelID2Name

◆ TPixelLabelMatrix

template<unsigned int BYTES_REQUIRED_>
using mrpt::obs::CObservation3DRangeScan::TPixelLabelInfo< BYTES_REQUIRED_ >::TPixelLabelMatrix = mrpt::math::CMatrixDynamic<bitmask_t>

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 640 of file CObservation3DRangeScan.h.

Member Enumeration Documentation

◆ anonymous enum

template<unsigned int BYTES_REQUIRED_>
anonymous enum
Enumerator
BYTES_REQUIRED 

Definition at line 622 of file CObservation3DRangeScan.h.

Constructor & Destructor Documentation

◆ TPixelLabelInfo()

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

Definition at line 673 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 665 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 551 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()

template<unsigned int BYTES_REQUIRED_>
void mrpt::obs::CObservation3DRangeScan::TPixelLabelInfo< BYTES_REQUIRED_ >::Print ( std::ostream &  out) const
inlineoverrideprotectedvirtual

◆ readAndBuildFromStream()

CObservation3DRangeScan::TPixelLabelInfoBase * plib::readAndBuildFromStream ( mrpt::serialization::CArchive in)
staticinherited

Definition at line 1244 of file CObservation3DRangeScan.cpp.

References mrpt::obs::CObservation3DRangeScan::TPixelLabelInfoBase::internal_readFromStream(), and MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION.

Referenced by mrpt::obs::CObservation3DRangeScan::serializeFrom().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ 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 647 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 643 of file CObservation3DRangeScan.h.

References mrpt::obs::CObservation3DRangeScan::TPixelLabelInfo< BYTES_REQUIRED_ >::pixelLabels, and mrpt::math::MatrixVectorBase< Scalar, Derived >::Zero().

Here is the call graph for this function:

◆ 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 656 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 1205 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 608 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: 8fe78517f Sun Jul 14 19:43:28 2019 +0200 at lun oct 28 02:10:00 CET 2019