13 #include <Eigen/Dense> 26 h = max(0.0f,
min(1.0f, h));
27 s = max(0.0f,
min(1.0f,
s));
28 v = max(0.0f,
min(1.0f,
v));
30 int Hi = ((int)floor(h * 6)) % 6;
31 float f = (h * 6) - Hi;
32 float p =
v * (1 -
s);
33 float q =
v * (1 - f *
s);
34 float t =
v * (1 - (1 - f) *
s);
77 r = max(0.0f,
min(1.0f,
r));
78 g = max(0.0f,
min(1.0f,
g));
79 b = max(0.0f,
min(1.0f,
b));
93 h = (
g -
b) / (6 * (Max - Min));
95 h = 1 - (
g -
b) / (6 * (Max - Min));
98 h = 1 / 3.0f + (
b -
r) / (6 * (Max - Min));
100 h = 2 / 3.0f + (
r -
g) / (6 * (Max - Min));
115 const TColormap& color_map,
const float col_indx_in,
float&
r,
float&
g,
120 const float color_index =
std::min(1.0f, std::max(.0f, col_indx_in));
128 r =
g =
b = color_index;
144 static bool jet_table_done =
false;
145 static Eigen::VectorXf jet_r, jet_g, jet_b;
150 jet_table_done =
true;
154 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
155 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
156 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
157 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
158 0.062500, 0.125000, 0.187500, 0.250000, 0.312500, 0.375000,
159 0.437500, 0.500000, 0.562500, 0.625000, 0.687500, 0.750000,
160 0.812500, 0.875000, 0.937500, 1.000000, 1.000000, 1.000000,
161 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
162 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
163 1.000000, 1.000000, 0.937500, 0.875000, 0.812500, 0.750000,
164 0.687500, 0.625000, 0.562500, 0.500000};
166 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
167 0.000000, 0.000000, 0.062500, 0.125000, 0.187500, 0.250000,
168 0.312500, 0.375000, 0.437500, 0.500000, 0.562500, 0.625000,
169 0.687500, 0.750000, 0.812500, 0.875000, 0.937500, 1.000000,
170 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
171 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
172 1.000000, 1.000000, 1.000000, 1.000000, 0.937500, 0.875000,
173 0.812500, 0.750000, 0.687500, 0.625000, 0.562500, 0.500000,
174 0.437500, 0.375000, 0.312500, 0.250000, 0.187500, 0.125000,
175 0.062500, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
176 0.000000, 0.000000, 0.000000, 0.000000};
178 0.562500, 0.625000, 0.687500, 0.750000, 0.812500, 0.875000,
179 0.937500, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
180 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
181 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
182 0.937500, 0.875000, 0.812500, 0.750000, 0.687500, 0.625000,
183 0.562500, 0.500000, 0.437500, 0.375000, 0.312500, 0.250000,
184 0.187500, 0.125000, 0.062500, 0.000000, 0.000000, 0.000000,
185 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
186 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
187 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
188 0.000000, 0.000000, 0.000000, 0.000000};
189 const size_t N =
sizeof(JET_B) /
sizeof(JET_B[0]);
194 for (
size_t i = 0; i < N; i++)
210 static bool table_done =
false;
211 static Eigen::VectorXf hot_r, hot_g, hot_b;
220 0.041667, 0.083333, 0.125000, 0.166667, 0.208333, 0.250000,
221 0.291667, 0.333333, 0.375000, 0.416667, 0.458333, 0.500000,
222 0.541667, 0.583333, 0.625000, 0.666667, 0.708333, 0.750000,
223 0.791667, 0.833333, 0.875000, 0.916667, 0.958333, 1.000000,
224 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
225 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
226 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
227 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
228 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
229 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
230 1.000000, 1.000000, 1.000000, 1.000000};
232 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
233 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
234 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
235 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
236 0.041667, 0.083333, 0.125000, 0.166667, 0.208333, 0.250000,
237 0.291667, 0.333333, 0.375000, 0.416667, 0.458333, 0.500000,
238 0.541667, 0.583333, 0.625000, 0.666667, 0.708333, 0.750000,
239 0.791667, 0.833333, 0.875000, 0.916667, 0.958333, 1.000000,
240 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
241 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
242 1.000000, 1.000000, 1.000000, 1.000000};
244 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
245 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
246 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
247 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
248 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
249 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
250 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
251 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
252 0.062500, 0.125000, 0.187500, 0.250000, 0.312500, 0.375000,
253 0.437500, 0.500000, 0.562500, 0.625000, 0.687500, 0.750000,
254 0.812500, 0.875000, 0.937500, 1.000000};
255 const size_t N =
sizeof(HOT_B) /
sizeof(HOT_B[0]);
260 for (
size_t i = 0; i < N; i++)
void colormap(const TColormap &color_map, const float color_index, float &r, float &g, float &b)
Transform a float number in the range [0,1] into RGB components.
TColormap
Different colormaps for use in mrpt::img::colormap()
#define THROW_EXCEPTION(msg)
const T max3(const T &A, const T &B, const T &C)
GLdouble GLdouble GLdouble GLdouble q
T interpolate(const T &x, const VECTOR &ys, const T &x0, const T &x1)
Interpolate a data sequence "ys" ranging from "x0" to "x1" (equally spaced), to obtain the approximat...
void hot2rgb(const float color_index, float &r, float &g, float &b)
Computes the RGB color components (range [0,1]) for the corresponding color index in the range [0...
void jet2rgb(const float color_index, float &r, float &g, float &b)
Computes the RGB color components (range [0,1]) for the corresponding color index in the range [0...
Undefined colormap [New in MRPT 2.0].
void rgb2hsv(float r, float g, float b, float &h, float &s, float &v)
Transform RGB color components to HSV, all of them in the range [0,1].
const T min3(const T &A, const T &B, const T &C)
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
GLdouble GLdouble GLdouble r
void hsv2rgb(float h, float s, float v, float &r, float &g, float &b)
Transform HSV color components to RGB, all of them in the range [0,1].