template struct mrpt::maps::CLogOddsGridMapLUT¶
One static instance of this struct should exist in any class implementing CLogOddsGridMap2D to hold the Look-up-tables (LUTs) for log-odss Bayesian update.
Map cells must be type TCELL, which can be only:
int8_t or
int16_t
See also:
CLogOddsGridMap2D, see derived classes for usage examples.
#include <mrpt/maps/CLogOddsGridMapLUT.h> template <typename TCELL> struct CLogOddsGridMapLUT: public mrpt::maps::detail::logoddscell_traits { // typedefs typedef TCELL cell_t; typedef detail::logoddscell_traits<TCELL> traits_t; // fields std::vector<float> logoddsTable; std::vector<uint8_t> logoddsTable_255; std::vector<cell_t> p2lTable; // methods float l2p(const cell_t l); uint8_t l2p_255(const cell_t l); cell_t p2l(const float p); };
Fields¶
std::vector<float> logoddsTable
A lookup table to compute occupancy probabilities in [0,1] from integer log-odds values in the cells, using \(p(m_{xy}) = \frac{1}{1+exp(-log_odd)}\).
std::vector<uint8_t> logoddsTable_255
A lookup table to compute occupancy probabilities in the range [0,255] from integer log-odds values in the cells, using \(p(m_{xy}) = \frac{1}{1+exp(-log_odd)}\).
This is used to speed-up conversions to grayscale images.
std::vector<cell_t> p2lTable
A lookup table for passing from float to log-odds as cell_t.
Methods¶
float l2p(const cell_t l)
Scales an integer representation of the log-odd into a real valued probability in [0,1], using p=exp(l)/(1+exp(l))
uint8_t l2p_255(const cell_t l)
Scales an integer representation of the log-odd into a linear scale [0,255], using p=exp(l)/(1+exp(l))
cell_t p2l(const float p)
Scales a real valued probability in [0,1] to an integer representation of: log(p)-log(1-p) in the valid range of cell_t.