| 49 |
|
return(TM_E_NOMEM); |
| 50 |
|
mult = 255.999/tmLuminance(fcs->mbrmax); |
| 51 |
|
for (i = fcs->mbrmin; i <= fcs->mbrmax; i++) |
| 52 |
< |
fcs->lumap[i] = (int)(mult * tmLuminance(i)); |
| 52 |
> |
fcs->lumap[i - fcs->mbrmin] = (int)(mult * tmLuminance(i)); |
| 53 |
|
returnOK; |
| 54 |
|
} |
| 55 |
|
|
| 68 |
|
fcs->lumap = (BYTE *)malloc(sizeof(BYTE)*(fcs->mbrmax - fcs->mbrmin + 1)); |
| 69 |
|
if (fcs->lumap == NULL) |
| 70 |
|
return(TM_E_NOMEM); |
| 71 |
< |
for (i = fcs->mbrmin; i <= fcs->mbrmax; i++) |
| 72 |
< |
fcs->lumap[i] = 256*(i - fcs->mbrmin) / |
| 73 |
< |
(fcs->mbrmax - fcs->mbrmin + 1); |
| 71 |
> |
for (i = fcs->mbrmax - fcs->mbrmin; i >= 0; i--) |
| 72 |
> |
fcs->lumap[i] = 256L * i / (fcs->mbrmax - fcs->mbrmin + 1); |
| 73 |
|
returnOK; |
| 74 |
|
} |
| 75 |
|
|
| 76 |
|
/* Compute linear false color map */ |
| 77 |
|
int |
| 78 |
< |
fcLinearMapping(FCstruct *fcs, TMstruct *tms, int pctile) |
| 78 |
> |
fcLinearMapping(FCstruct *fcs, TMstruct *tms, double pctile) |
| 79 |
|
{ |
| 80 |
|
int i; |
| 81 |
|
int32 histot, cnt; |
| 82 |
|
TMbright wbrmin, wbrmax; |
| 83 |
|
|
| 84 |
|
if ((fcs == NULL) | (tms == NULL) || (tms->histo == NULL) | |
| 85 |
< |
(0 > pctile) | (pctile >= 100)) |
| 85 |
> |
(0 > pctile) | (pctile >= 50)) |
| 86 |
|
return(TM_E_ILLEGAL); |
| 87 |
|
histot = 0; |
| 88 |
|
for (i = tms->hbrmax - tms->hbrmin; i >= 0; ) |
| 98 |
|
|
| 99 |
|
/* Compute logarithmic false color map */ |
| 100 |
|
int |
| 101 |
< |
fcLogMapping(FCstruct *fcs, TMstruct *tms, int pctile) |
| 101 |
> |
fcLogMapping(FCstruct *fcs, TMstruct *tms, double pctile) |
| 102 |
|
{ |
| 103 |
|
int i; |
| 104 |
|
int32 histot, cnt; |
| 105 |
|
TMbright wbrmin, wbrmax; |
| 106 |
|
|
| 107 |
|
if ((fcs == NULL) | (tms == NULL) || (tms->histo == NULL) | |
| 108 |
< |
(0 > pctile) | (pctile >= 100)) |
| 108 |
> |
(0 > pctile) | (pctile >= 50)) |
| 109 |
|
return(TM_E_ILLEGAL); |
| 110 |
|
histot = 0; |
| 111 |
|
for (i = tms->hbrmax - tms->hbrmin; i >= 0; ) |
| 198 |
|
} |
| 199 |
|
|
| 200 |
|
BYTE fcDefaultScale[256][3] = { /* default false color scale */ |
| 201 |
< |
48,0,68, 45,0,70, 42,0,72, 39,0,74, 36,0,76, 33,0,78, 30,0,81, |
| 202 |
< |
27,0,83, 24,0,85, 21,0,87, 18,0,89, 15,0,91, 13,0,94, 12,0,96, |
| 203 |
< |
11,0,99, 9,0,101, 8,0,104, 7,0,106, 6,0,109, 5,0,111, 4,0,114, |
| 204 |
< |
2,0,116, 1,0,119, 0,0,121, 0,0,122, 0,1,123, 0,1,124, 0,2,125, |
| 205 |
< |
0,2,125, 0,3,126, 0,4,127, 0,4,128, 0,5,129, 0,5,129, 0,6,130, |
| 206 |
< |
0,7,131, 0,9,131, 0,11,132, 0,13,133, 0,16,133, 0,18,134, |
| 207 |
< |
0,20,134, 0,22,135, 0,24,135, 0,26,136, 0,29,136, 0,31,137, |
| 208 |
< |
0,34,137, 0,37,136, 0,41,136, 0,45,135, 0,48,135, 0,52,135, |
| 209 |
< |
0,55,134, 0,59,134, 0,62,134, 0,66,133, 0,69,133, 0,73,132, |
| 210 |
< |
0,76,130, 0,79,127, 0,82,125, 0,85,123, 0,88,120, 0,91,118, |
| 211 |
< |
0,94,115, 0,97,113, 0,101,110, 0,104,108, 0,107,106, 0,109,102, |
| 212 |
< |
0,110,97, 0,111,91, 0,112,86, 0,113,81, 0,115,76, 0,116,71, |
| 213 |
< |
0,117,65, 0,118,60, 0,119,55, 0,120,50, 0,122,45, 0,121,42, |
| 214 |
< |
1,120,39, 1,119,36, 1,119,34, 1,118,31, 2,117,28, 2,116,26, |
| 215 |
< |
2,115,23, 2,115,20, 3,114,18, 3,113,15, 3,112,13, 4,110,13, |
| 216 |
< |
5,108,13, 6,106,13, 7,104,12, 9,102,12, 10,100,12, 11,98,12, |
| 217 |
< |
12,97,12, 13,95,12, 14,93,11, 15,91,11, 17,89,12, 19,86,12, |
| 218 |
< |
22,83,12, 24,81,13, 26,78,13, 29,76,14, 31,73,14, 34,70,15, |
| 219 |
< |
36,68,15, 39,65,16, 41,63,16, 44,60,17, 46,58,17, 49,56,17, |
| 220 |
< |
51,54,17, 54,52,17, 57,50,17, 59,48,17, 62,45,17, 64,43,17, |
| 221 |
< |
67,41,17, 70,39,17, 72,37,17, 74,35,17, 75,34,16, 76,33,16, |
| 222 |
< |
77,32,16, 79,31,15, 80,30,15, 81,29,14, 82,28,14, 83,26,13, |
| 223 |
< |
84,25,13, 85,24,13, 87,23,12, 87,22,12, 88,21,11, 89,20,11, |
| 224 |
< |
90,19,10, 91,18,10, 92,17,9, 93,16,9, 94,15,8, 95,14,8, |
| 225 |
< |
95,13,7, 96,12,7, 97,11,7, 98,11,6, 99,10,6, 99,9,5, 100,9,5, |
| 226 |
< |
101,8,5, 102,8,4, 102,7,4, 103,6,4, 104,6,3, 104,5,3, 105,4,2, |
| 227 |
< |
106,4,2, 107,4,2, 107,3,2, 108,3,2, 109,3,2, 109,2,1, 110,2,1, |
| 228 |
< |
111,2,1, 112,1,1, 112,1,1, 113,1,0, 114,1,0, 115,0,0, 116,0,0, |
| 229 |
< |
117,0,0, 118,0,0, 119,0,0, 121,0,0, 122,0,0, 123,0,0, 124,0,0, |
| 230 |
< |
125,0,0, 126,0,0, 128,0,0, 131,0,0, 134,0,0, 137,0,0, 140,0,0, |
| 231 |
< |
144,0,0, 147,0,0, 150,0,0, 153,0,0, 156,0,0, 159,0,0, 162,0,0, |
| 232 |
< |
165,0,0, 168,0,0, 171,0,0, 174,0,0, 177,0,0, 180,1,0, 183,1,0, |
| 233 |
< |
186,1,0, 189,1,0, 192,1,0, 195,2,0, 198,2,0, 201,5,0, 204,7,0, |
| 234 |
< |
207,9,0, 210,11,0, 213,13,0, 216,15,0, 219,17,0, 222,19,0, |
| 235 |
< |
225,21,0, 228,23,0, 230,25,0, 233,29,0, 235,34,0, 237,39,0, |
| 236 |
< |
239,43,0, 241,48,0, 243,52,0, 245,57,0, 247,61,0, 250,66,0, |
| 237 |
< |
252,71,0, 254,75,0, 255,80,0, 255,88,0, 255,95,1, 255,103,1, |
| 238 |
< |
255,110,1, 255,117,1, 255,125,1, 255,132,2, 255,139,2, 255,147,2, |
| 239 |
< |
255,154,2, 255,162,2, 255,169,3, 255,176,3, 255,183,3, 254,190,4, |
| 240 |
< |
254,198,4, 254,205,4, 254,212,4, 253,219,5, 253,226,5, 253,234,5, |
| 241 |
< |
252,241,6, 252,248,6 |
| 201 |
> |
119,10,140, |
| 202 |
> |
116,10,142, |
| 203 |
> |
112,10,144, |
| 204 |
> |
109,9,146, |
| 205 |
> |
105,9,148, |
| 206 |
> |
101,8,150, |
| 207 |
> |
97,7,151, |
| 208 |
> |
92,7,153, |
| 209 |
> |
88,6,155, |
| 210 |
> |
83,5,157, |
| 211 |
> |
77,4,158, |
| 212 |
> |
72,2,160, |
| 213 |
> |
67,2,162, |
| 214 |
> |
64,4,164, |
| 215 |
> |
61,5,166, |
| 216 |
> |
58,6,168, |
| 217 |
> |
55,6,170, |
| 218 |
> |
51,7,171, |
| 219 |
> |
47,8,173, |
| 220 |
> |
43,8,175, |
| 221 |
> |
38,9,177, |
| 222 |
> |
33,9,179, |
| 223 |
> |
25,10,180, |
| 224 |
> |
14,10,182, |
| 225 |
> |
10,17,183, |
| 226 |
> |
10,22,183, |
| 227 |
> |
9,27,184, |
| 228 |
> |
9,30,184, |
| 229 |
> |
8,33,185, |
| 230 |
> |
8,36,185, |
| 231 |
> |
7,39,186, |
| 232 |
> |
6,41,187, |
| 233 |
> |
5,43,187, |
| 234 |
> |
4,45,188, |
| 235 |
> |
3,47,188, |
| 236 |
> |
0,50,189, |
| 237 |
> |
0,57,189, |
| 238 |
> |
0,62,189, |
| 239 |
> |
0,67,190, |
| 240 |
> |
0,72,190, |
| 241 |
> |
0,77,190, |
| 242 |
> |
0,81,191, |
| 243 |
> |
0,84,191, |
| 244 |
> |
1,88,191, |
| 245 |
> |
1,92,192, |
| 246 |
> |
1,95,192, |
| 247 |
> |
1,98,192, |
| 248 |
> |
2,102,192, |
| 249 |
> |
3,107,192, |
| 250 |
> |
3,112,192, |
| 251 |
> |
4,116,191, |
| 252 |
> |
5,120,191, |
| 253 |
> |
5,124,191, |
| 254 |
> |
5,128,191, |
| 255 |
> |
6,131,191, |
| 256 |
> |
6,135,190, |
| 257 |
> |
7,138,190, |
| 258 |
> |
7,141,190, |
| 259 |
> |
7,145,189, |
| 260 |
> |
8,147,188, |
| 261 |
> |
8,150,186, |
| 262 |
> |
9,153,185, |
| 263 |
> |
9,155,183, |
| 264 |
> |
10,158,181, |
| 265 |
> |
10,160,180, |
| 266 |
> |
11,163,178, |
| 267 |
> |
11,165,176, |
| 268 |
> |
11,167,175, |
| 269 |
> |
12,170,173, |
| 270 |
> |
12,172,171, |
| 271 |
> |
13,173,168, |
| 272 |
> |
13,174,164, |
| 273 |
> |
14,175,160, |
| 274 |
> |
14,176,156, |
| 275 |
> |
15,177,152, |
| 276 |
> |
15,178,147, |
| 277 |
> |
16,178,143, |
| 278 |
> |
16,179,138, |
| 279 |
> |
17,180,133, |
| 280 |
> |
17,181,127, |
| 281 |
> |
18,182,122, |
| 282 |
> |
18,182,116, |
| 283 |
> |
20,182,112, |
| 284 |
> |
22,181,109, |
| 285 |
> |
24,181,105, |
| 286 |
> |
26,180,102, |
| 287 |
> |
27,180,98, |
| 288 |
> |
29,179,94, |
| 289 |
> |
30,179,90, |
| 290 |
> |
32,178,86, |
| 291 |
> |
33,177,81, |
| 292 |
> |
34,177,77, |
| 293 |
> |
35,176,71, |
| 294 |
> |
37,176,67, |
| 295 |
> |
42,174,67, |
| 296 |
> |
46,173,66, |
| 297 |
> |
49,171,66, |
| 298 |
> |
52,170,65, |
| 299 |
> |
55,169,65, |
| 300 |
> |
58,167,65, |
| 301 |
> |
61,166,64, |
| 302 |
> |
64,164,64, |
| 303 |
> |
66,163,63, |
| 304 |
> |
68,161,63, |
| 305 |
> |
71,160,63, |
| 306 |
> |
75,158,63, |
| 307 |
> |
79,156,64, |
| 308 |
> |
84,154,65, |
| 309 |
> |
88,151,66, |
| 310 |
> |
92,149,68, |
| 311 |
> |
95,147,69, |
| 312 |
> |
99,145,70, |
| 313 |
> |
102,142,71, |
| 314 |
> |
105,140,71, |
| 315 |
> |
109,137,72, |
| 316 |
> |
112,135,73, |
| 317 |
> |
115,132,74, |
| 318 |
> |
118,130,74, |
| 319 |
> |
121,128,74, |
| 320 |
> |
123,126,74, |
| 321 |
> |
126,124,74, |
| 322 |
> |
129,121,75, |
| 323 |
> |
132,119,75, |
| 324 |
> |
134,117,75, |
| 325 |
> |
137,114,75, |
| 326 |
> |
139,112,75, |
| 327 |
> |
142,109,75, |
| 328 |
> |
144,106,75, |
| 329 |
> |
146,104,75, |
| 330 |
> |
147,103,74, |
| 331 |
> |
148,101,73, |
| 332 |
> |
149,100,72, |
| 333 |
> |
150,98,71, |
| 334 |
> |
151,96,70, |
| 335 |
> |
152,95,70, |
| 336 |
> |
152,93,69, |
| 337 |
> |
153,91,68, |
| 338 |
> |
154,90,67, |
| 339 |
> |
155,88,66, |
| 340 |
> |
156,86,65, |
| 341 |
> |
157,84,64, |
| 342 |
> |
158,83,63, |
| 343 |
> |
158,81,62, |
| 344 |
> |
159,79,60, |
| 345 |
> |
160,77,59, |
| 346 |
> |
161,75,58, |
| 347 |
> |
161,73,57, |
| 348 |
> |
162,71,55, |
| 349 |
> |
163,69,54, |
| 350 |
> |
163,67,52, |
| 351 |
> |
164,65,51, |
| 352 |
> |
165,63,49, |
| 353 |
> |
165,61,48, |
| 354 |
> |
166,60,47, |
| 355 |
> |
166,58,46, |
| 356 |
> |
167,56,44, |
| 357 |
> |
167,55,43, |
| 358 |
> |
168,53,42, |
| 359 |
> |
169,51,40, |
| 360 |
> |
169,49,39, |
| 361 |
> |
170,46,37, |
| 362 |
> |
170,44,35, |
| 363 |
> |
171,42,33, |
| 364 |
> |
171,40,32, |
| 365 |
> |
172,39,31, |
| 366 |
> |
172,37,30, |
| 367 |
> |
173,36,29, |
| 368 |
> |
173,34,28, |
| 369 |
> |
174,33,27, |
| 370 |
> |
174,31,25, |
| 371 |
> |
175,29,24, |
| 372 |
> |
175,27,22, |
| 373 |
> |
176,25,21, |
| 374 |
> |
176,23,19, |
| 375 |
> |
177,21,17, |
| 376 |
> |
178,20,16, |
| 377 |
> |
179,19,16, |
| 378 |
> |
179,18,15, |
| 379 |
> |
180,17,14, |
| 380 |
> |
181,16,13, |
| 381 |
> |
182,15,13, |
| 382 |
> |
182,13,12, |
| 383 |
> |
183,12,11, |
| 384 |
> |
184,10,9, |
| 385 |
> |
185,8,8, |
| 386 |
> |
185,5,6, |
| 387 |
> |
187,3,5, |
| 388 |
> |
189,3,5, |
| 389 |
> |
191,3,5, |
| 390 |
> |
193,3,6, |
| 391 |
> |
195,3,6, |
| 392 |
> |
197,2,6, |
| 393 |
> |
198,2,6, |
| 394 |
> |
200,2,6, |
| 395 |
> |
202,2,6, |
| 396 |
> |
204,1,6, |
| 397 |
> |
206,1,6, |
| 398 |
> |
208,0,6, |
| 399 |
> |
209,9,7, |
| 400 |
> |
211,13,7, |
| 401 |
> |
213,15,8, |
| 402 |
> |
214,18,8, |
| 403 |
> |
216,20,9, |
| 404 |
> |
218,21,9, |
| 405 |
> |
219,23,9, |
| 406 |
> |
221,24,10, |
| 407 |
> |
223,26,10, |
| 408 |
> |
224,27,10, |
| 409 |
> |
226,28,11, |
| 410 |
> |
228,33,11, |
| 411 |
> |
229,43,11, |
| 412 |
> |
231,50,11, |
| 413 |
> |
232,56,11, |
| 414 |
> |
234,61,11, |
| 415 |
> |
235,66,11, |
| 416 |
> |
237,71,11, |
| 417 |
> |
238,75,11, |
| 418 |
> |
239,79,11, |
| 419 |
> |
241,83,11, |
| 420 |
> |
242,86,11, |
| 421 |
> |
244,90,11, |
| 422 |
> |
245,96,11, |
| 423 |
> |
246,102,12, |
| 424 |
> |
247,108,12, |
| 425 |
> |
248,114,13, |
| 426 |
> |
249,119,13, |
| 427 |
> |
250,124,13, |
| 428 |
> |
251,129,14, |
| 429 |
> |
252,134,14, |
| 430 |
> |
253,138,15, |
| 431 |
> |
254,143,15, |
| 432 |
> |
255,147,15, |
| 433 |
> |
255,151,16, |
| 434 |
> |
255,157,18, |
| 435 |
> |
255,163,20, |
| 436 |
> |
255,169,22, |
| 437 |
> |
255,174,24, |
| 438 |
> |
255,179,25, |
| 439 |
> |
255,184,26, |
| 440 |
> |
255,189,28, |
| 441 |
> |
255,194,29, |
| 442 |
> |
255,199,30, |
| 443 |
> |
255,203,31, |
| 444 |
> |
255,207,32, |
| 445 |
> |
255,212,34, |
| 446 |
> |
255,216,35, |
| 447 |
> |
255,220,37, |
| 448 |
> |
255,224,38, |
| 449 |
> |
255,227,40, |
| 450 |
> |
255,231,41, |
| 451 |
> |
255,235,42, |
| 452 |
> |
254,238,43, |
| 453 |
> |
254,242,44, |
| 454 |
> |
254,245,46, |
| 455 |
> |
254,249,47, |
| 456 |
> |
254,252,48, |
| 457 |
|
}; |