MRPT  1.9.9
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions
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_ >:

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::string & getLabelName (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

using mrpt::obs::CObservation3DRangeScan::TPixelLabelInfoBase::TMapLabelID2Name = std::map<uint32_t, std::string>
inherited

Definition at line 535 of file CObservation3DRangeScan.h.

◆ 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 645 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 678 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 670 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()

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 652 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 648 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 661 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.

References out.

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

template<unsigned int BYTES_REQUIRED_>
TPixelLabelMatrix mrpt::obs::CObservation3DRangeScan::TPixelLabelInfo< BYTES_REQUIRED_ >::pixelLabels



Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 4a95fd864 Fri Dec 13 00:48:40 2019 +0100 at vie dic 13 01:00:11 CET 2019