
HDL‐64ES3
High DefinitionLiDARSensor Page46
Velodyne,Inc.
©
2013
63‐HDL64ES3REV G
Intensity Value Corrected by Distance
for (guint i=0; i< VLS_LASER_PER_FIRING; i++) {
guit laser = i + base;
if (!db->getEnabled(laser))
continue;
bool intensity =db->getintensity(laser);
if (!intensity: {
glColor3fv(db->getDisplayColor(laser).rgb);
} else {
guchar minintensity = 0, maxintensity = 0;
fioat intensityScaie = 0;
minintensity = db->getMinintensity(laser);
maxintensity = db->getMaxintensity(laser);
//Get intensity scaie
intensityScaie = (float)(maxintensity - minintensity);
// Get firing “i” intensity
guchar intensityVal = it->getPoint(i)->intensity;
// Get firing “i” distance, here unit is 2mm
float distance = it->getPoint(i)->distance;
// Calculate offset according calibration
float focaloffset= 256*(l-db->getFocalDistance(laser)/l3l00)*(l-db-
>getFocalDistance(laser)/l3l00);
// get slope from calibration
float focalslope = db->getFocalSlope(laser);
// Calculate corrected intensity vs distance
float intensityVal1 = intensityVal + focalslope*(abs(focaloffset-256*(l-
distance/65535)*(l-distance/65535)));
if (intensityVal1 < minintensity) intensityVal1=minintensity;
if (intensityVal1 > maxintensity) intensityVal1=maxintensity;
// Scale to new intensity scale
float intensityColor = (float)(intensityVal1 - minintensity) /
intensityScale;
// Convert to jet color
int rgb=(int)(intensityColor*63);
glColor3f(rcolor[rgb], gcolor[rgb], bcolor[rgb]);
}
GlVertex3fv(it->getCoord(i).xyz;
}
it->operator++();
Comentarios a estos manuales