Changeset 38227 for trunk/psModules/src/detrend/pmOverscan.c
- Timestamp:
- May 5, 2015, 6:48:51 AM (11 years ago)
- File:
-
- 1 edited
-
trunk/psModules/src/detrend/pmOverscan.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/detrend/pmOverscan.c
r23989 r38227 295 295 psMetadataAddF32(hdu->header, PS_LIST_TAIL, "OVER_SIG", PS_META_REPLACE, "Overscan stdev", NAN); 296 296 297 (void)psBinaryOp(image, image, "-", psScalarAlloc((float)reduced, PS_TYPE_F32)); 297 psScalar *reducedScalar = psScalarAlloc(reduced, PS_TYPE_F32); 298 (void)psBinaryOp (image, image, "-", , reducedScalar); 299 300 // subtract the measured value from each overscan region as well 301 iter = psListIteratorAlloc(overscans, PS_LIST_HEAD, false); // Iterator 302 overscan = NULL; // Overscan image from iterator 303 while ((overscan = psListGetAndIncrement(iter))) { 304 (void)psBinaryOp(overscan, overscan, "-", reducedScalar); 305 } 306 psFree(iter); 307 298 308 psFree(stats); 299 309 return true; … … 375 385 } 376 386 } 387 388 // subtract from the overscan regions 389 { 390 psListIterator *iter = psListIteratorAlloc(overscans, PS_LIST_HEAD, false); // Iterator 391 psImage *overscan = NULL; // Overscan image from iterator 392 while ((overscan = psListGetAndIncrement(iter))) { 393 // the overscan and image might not be aligned. 394 int diff = overscan->row0 - image->row0; // Offset between the two regions 395 for (int i = PS_MAX(0,diff); i < PS_MIN(image->numRows, overscan->numRows + diff); i++) { 396 int j = i - diff; 397 // i is row on image 398 // j is row on overscan 399 for (int k = 0; i < overscan->numCols; k++) { 400 overscan->data.F32[j][k] -= reduced->data.F32[j]; 401 } 402 } 403 } 404 psFree(iter); 405 } 377 406 psFree(reduced); 378 407 } … … 441 470 } 442 471 } 472 473 // subtract from the overscan regions 474 { 475 psListIterator *iter = psListIteratorAlloc(overscans, PS_LIST_HEAD, false); // Iterator 476 psImage *overscan = NULL; // Overscan image from iterator 477 while ((overscan = psListGetAndIncrement(iter))) { 478 // the overscan and image might not be aligned. 479 int diff = overscan->col0 - image->col0; // Offset between the two regions 480 for (int i = PS_MAX(0,diff); i < PS_MIN(image->numCols, overscan->numCols + diff); i++) { 481 int j = i - diff; 482 // i is col on image 483 // j is col on overscan 484 for (int k = 0; i < overscan->numRows; k++) { 485 overscan->data.F32[k][j] -= reduced->data.F32[j]; 486 } 487 } 488 } 489 psFree(iter); 490 } 491 443 492 psFree(reduced); 444 493 }
Note:
See TracChangeset
for help on using the changeset viewer.
