template struct mrpt::obs::TPixelLabelInfo
Overview
Pixel-wise semantic label struct.
See CObservation3DRangeScan::pixelLabels
#include <mrpt/obs/TPixelLabelInfo.h> template <unsigned int BYTES_REQUIRED_> struct TPixelLabelInfo: public mrpt::obs::TPixelLabelInfoBase { // typedefs typedef std::shared_ptr<TPixelLabelInfo> Ptr; typedef typename mrpt::uint_select_by_bytecount<BYTES_REQUIRED>::type bitmask_t; typedef mrpt::math::CMatrixDynamic<bitmask_t> TPixelLabelMatrix; // fields static constexpr static unsigned int BYTES_REQUIRED = BYTES_REQUIRED_; TPixelLabelMatrix pixelLabels; // construction TPixelLabelInfo(); // methods virtual void setSize(const int NROWS, const int NCOLS); virtual void setLabel(const int row, const int col, uint8_t label_idx); virtual void getLabels( const int row, const int col, uint8_t& labels ); virtual void unsetLabel(const int row, const int col, uint8_t label_idx); void unsetAll( const int row, const int col, ] uint8_t label_idx ); virtual bool checkLabel(const int row, const int col, uint8_t label_idx) const; };
Inherited Members
public: // typedefs typedef std::shared_ptr<TPixelLabelInfoBase> Ptr; typedef std::map<uint32_t, std::string> TMapLabelID2Name; // fields TMapLabelID2Name pixelLabelNames; const uint8_t BITFIELD_BYTES; // methods const std::string& getLabelName(uint8_t label_idx) const; void setLabelName(unsigned int label_idx, const std::string& name); int checkLabelNameExistence(const std::string& name) const; virtual void setSize(const int NROWS, const int NCOLS) = 0; virtual void setLabel(const int row, const int col, uint8_t label_idx) = 0; 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; virtual void unsetAll(const int row, const int col, uint8_t label_idx) = 0; virtual bool checkLabel(const int row, const int col, uint8_t label_idx) const = 0; void writeToStream(mrpt::serialization::CArchive& out) const; static TPixelLabelInfoBase* readAndBuildFromStream(mrpt::serialization::CArchive& in);
Typedefs
typedef typename mrpt::uint_select_by_bytecount<BYTES_REQUIRED>::type bitmask_t
Automatically-determined integer type of the proper size such that all labels fit as one bit (max: 64)
typedef mrpt::math::CMatrixDynamic<bitmask_t> TPixelLabelMatrix
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
Methods
virtual void setSize(const int NROWS, const int NCOLS)
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)
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:
virtual void unsetLabel(const int row, const int col, uint8_t label_idx)
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:
virtual bool checkLabel(const int row, const int col, uint8_t label_idx) const
Checks whether pixel(row,col) has been classified into category label_idx, which may be in the range 0 to 7.
See also: