- Timestamp:
- May 26, 2009, 1:59:32 PM (17 years ago)
- Location:
- branches/cnb_branches/cnb_branch_20090301
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/cnb_branches/cnb_branch_20090301
- Property svn:mergeinfo changed
-
branches/cnb_branches/cnb_branch_20090301/psModules
- Property svn:mergeinfo changed
-
branches/cnb_branches/cnb_branch_20090301/psModules/src/detrend/pmOverscan.c
r21183 r24244 74 74 mask->data.PS_TYPE_VECTOR_MASK_DATA[i] = 0; 75 75 ordinate->data.F32[i] = 2.0*(float)i/(float)pixels->n - 1.0; // Scale to [-1,1] 76 psVectorStats(myStats, values, NULL, NULL, 0); 76 if (!psVectorStats(myStats, values, NULL, NULL, 0)) { 77 psError(PS_ERR_UNKNOWN, false, "failure to measure stats"); 78 return false; 79 } 77 80 reduced->data.F32[i] = psStatsGetValue(myStats, statistic); 78 81 } else if (overscanOpts->fitType == PM_FIT_NONE) { … … 255 258 psMetadataAddStr(hdu->header, PS_LIST_TAIL, "HISTORY", PS_META_DUPLICATE_OK, 256 259 comment, ""); 260 psTrace ("psModules.detrend", 4, "%s\n", comment); 257 261 psFree(comment); 258 262 … … 274 278 psFree(iter); 275 279 276 (void)psVectorStats(stats, pixels, NULL, NULL, 0); 280 if (!psVectorStats(stats, pixels, NULL, NULL, 0)) { 281 psError(PS_ERR_UNKNOWN, false, "failure to measure stats"); 282 return false; 283 } 277 284 psFree(pixels); 278 285 double reduced = psStatsGetValue(stats, statistic); // Result of statistics … … 344 351 } 345 352 353 // generate stats of overscan vector for header 354 { 355 psString comment = NULL; // Comment to add 356 psStats *vectorStats = psStatsAlloc (PS_STAT_SAMPLE_MEAN | PS_STAT_SAMPLE_STDEV); 357 if (!psVectorStats (vectorStats, reduced, NULL, NULL, 0)) { 358 psError(PS_ERR_UNKNOWN, false, "failure to measure stats"); 359 return false; 360 } 361 psStringAppend(&comment, "Mean Overscan value: %f", vectorStats->sampleMean); 362 psMetadataAddStr(hdu->header, PS_LIST_TAIL, "HISTORY", PS_META_DUPLICATE_OK, comment, ""); 363 psFree(comment); 364 365 // write metadata header value 366 psMetadataAddF32(hdu->header, PS_LIST_TAIL, "OVER_VAL", PS_META_REPLACE, "Overscan mean", vectorStats->sampleMean); 367 psMetadataAddF32(hdu->header, PS_LIST_TAIL, "OVER_SIG", PS_META_REPLACE, "Overscan stdev", vectorStats->sampleStdev); 368 psFree (vectorStats); 369 } 370 346 371 // Subtract row by row 347 372 for (int i = 0; i < image->numRows; i++) { … … 392 417 } 393 418 394 // Subtract column by column 395 for (int i = 0; i < image->numCols; i++) { 396 for (int j = 0; j < image->numRows; j++) { 419 // generate stats of overscan vector for header 420 { 421 psString comment = NULL; // Comment to add 422 psStats *vectorStats = psStatsAlloc (PS_STAT_SAMPLE_MEAN | PS_STAT_SAMPLE_STDEV); 423 if (!psVectorStats (vectorStats, reduced, NULL, NULL, 0)) { 424 psError(PS_ERR_UNKNOWN, false, "failure to measure stats"); 425 return false; 426 } 427 psStringAppend(&comment, "Mean Overscan value: %f", vectorStats->sampleMean); 428 psMetadataAddStr(hdu->header, PS_LIST_TAIL, "HISTORY", PS_META_DUPLICATE_OK, comment, ""); 429 psFree(comment); 430 431 // write metadata header value 432 psMetadataAddF32(hdu->header, PS_LIST_TAIL, "OVER_VAL", PS_META_REPLACE, "Overscan mean", vectorStats->sampleMean); 433 psMetadataAddF32(hdu->header, PS_LIST_TAIL, "OVER_SIG", PS_META_REPLACE, "Overscan stdev", vectorStats->sampleStdev); 434 psFree (vectorStats); 435 } 436 437 // Subtract column by column 438 for (int j = 0; j < image->numRows; j++) { 439 for (int i = 0; i < image->numCols; i++) { 397 440 image->data.F32[j][i] -= reduced->data.F32[i]; 398 441 }
Note:
See TracChangeset
for help on using the changeset viewer.
