Changeset 16351
- Timestamp:
- Feb 6, 2008, 6:03:22 PM (18 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/imageops/psImageInterpolate.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/imageops/psImageInterpolate.c
r15640 r16351 7 7 * @author Paul Price, IfA 8 8 * 9 * @version $Revision: 1. 9$ $Name: not supported by cvs2svn $10 * @date $Date: 200 7-11-17 00:39:29$9 * @version $Revision: 1.10 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2008-02-07 04:03:22 $ 11 11 * 12 12 * Copyright 2004-2007 Institute for Astronomy, University of Hawaii … … 312 312 #define KERNEL_VARIANCE_CASE(TYPE) \ 313 313 case PS_TYPE_##TYPE: { \ 314 double sumKernel2 = 0.0; /* Sum of kernel squares */ \315 314 for (int j = 0, yPix = yCentral - (yNum - 1) / 2; j < yNum; j++, yPix++) { \ 316 315 for (int i = 0, xPix = xCentral - (xNum - 1) / 2; i < xNum; i++, xPix++) { \ 317 double kernel2 = PS_SQR(kernel[j][i]); /* Kernel squared */ \ 318 sumKernel2 += kernel2; \ 319 *varianceValue += kernel2 * variance->data.TYPE[yPix][xPix]; \ 316 *varianceValue += PS_SQR(kernel[j][i]) * variance->data.TYPE[yPix][xPix]; \ 320 317 } \ 321 318 } \ 322 *varianceValue /= sumKernel2; /* Normalise so that sum of kernel squares is unity */ \323 319 break; \ 324 320 } … … 546 542 #define SEPARATE_VARIANCE_CASE(TYPE) \ 547 543 case PS_TYPE_##TYPE: { \ 548 double ySumKernel2 = 0.0; /* Sum of kernel squared in y */ \549 544 for (int j = 0, yPix = yCentral - (yNum - 1) / 2; j < yNum; j++, yPix++) { \ 550 545 double xInterpValue = 0.0; /* Interpolation in x */ \ 551 double xSumKernel2 = 0.0; /* Sum of kernel squared in x */ \552 546 for (int i = 0, xPix = xCentral - (xNum - 1) / 2; i < xNum; i++, xPix++) { \ 553 double kernel2 = PS_SQR(xKernel[i]); /* Kernel squared */ \ 554 xSumKernel2 += kernel2; \ 555 xInterpValue += kernel2 * variance->data.TYPE[yPix][xPix]; \ 547 xInterpValue += PS_SQR(xKernel[i]) * variance->data.TYPE[yPix][xPix]; \ 556 548 } \ 557 double kernel2 = PS_SQR(yKernel[j]); /* Kernel squared */ \ 558 ySumKernel2 += xSumKernel2 * kernel2; \ 559 *varianceValue += xInterpValue * kernel2; /* Interpolating in y */ \ 549 *varianceValue += xInterpValue * PS_SQR(yKernel[j]); /* Interpolating in y */ \ 560 550 } \ 561 *varianceValue /= ySumKernel2; /* Normalise so that sum of kernel squares is unity */ \562 551 break; \ 563 552 } … … 604 593 PS_ASSERT_IMAGE_NON_NULL(mask, PS_INTERPOLATE_STATUS_ERROR); 605 594 PS_ASSERT_IMAGE_TYPE(mask, PS_TYPE_MASK, PS_INTERPOLATE_STATUS_ERROR); 606 if ((image->numCols != mask->numCols) || (image->numRows != mask->numRows)) { 607 psAbort ("programming error");608 }595 if ((image->numCols != mask->numCols) || (image->numRows != mask->numRows)) { 596 psAbort ("programming error"); 597 } 609 598 PS_ASSERT_IMAGES_SIZE_EQUAL(mask, image, PS_INTERPOLATE_STATUS_ERROR); 610 // XXX these should probably be asserts, not PS_ASSERTS599 // XXX these should probably be asserts, not PS_ASSERTS 611 600 } 612 601
Note:
See TracChangeset
for help on using the changeset viewer.
