41 #include <pcl/pcl_config.h>
67 constexpr std::size_t table_size = 1 << 10;
70 lookupTable_.resize(table_size);
73 constexpr std::int16_t nConstShift = 800;
74 constexpr
double nParamCoeff = 4.000000;
75 constexpr
double dPlanePixelSize = 0.104200;
76 constexpr
double nShiftScale = 10.000000;
77 constexpr
double dPlaneDsr = 120.000000;
78 constexpr
double dPlaneDcl = 7.500000;
80 for (std::size_t i=0; i<table_size; ++i)
83 double dFixedRefX = (
static_cast<double>(i - nConstShift) / nParamCoeff)-0.375;
84 double dMetric = dFixedRefX * dPlanePixelSize;
85 lookupTable_[i] =
static_cast<float>((nShiftScale * ((dMetric * dPlaneDsr / (dPlaneDcl - dMetric)) + dPlaneDsr) ) / 1000.0f);
98 constexpr
float bad_point = std::numeric_limits<float>::quiet_NaN ();
100 float ret = bad_point;
103 if (shift_val<lookupTable_.size())
104 ret = lookupTable_[shift_val];
This class provides conversion of the openni 11-bit shift data to depth;.
float shiftToDepth(std::uint16_t shift_val)
Generate a look-up table for converting openni shift values to depth.
ShiftToDepthConverter()
Constructor.
virtual ~ShiftToDepthConverter()=default
Destructor.
bool isInitialized() const
std::vector< float > lookupTable_
void generateLookupTable()
This method generates a look-up table to convert openni shift values to depth.