Changeset 24844 for trunk/psModules/src/imcombine/pmSubtractionEquation.c
- Timestamp:
- Jul 17, 2009, 2:38:57 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/imcombine/pmSubtractionEquation.c
r24621 r24844 793 793 794 794 #ifdef TESTING 795 // XXX double-check for NAN in data:796 for (int iy = 0; iy < stamp->matrix1->numRows; iy++) {797 for (int ix = 0; ix < stamp->matrix1->numCols; ix++) {798 if (!isfinite(stamp->matrix1->data.F64[iy][ix])) {799 fprintf (stderr, "WARNING: NAN in matrix1\n");800 }801 }802 }803 for (int ix = 0; ix < stamp->vector1->n; ix++) {804 if (!isfinite(stamp->vector1->data.F64[ix])) {805 fprintf (stderr, "WARNING: NAN in vector1\n");806 }807 }795 // XXX double-check for NAN in data: 796 for (int iy = 0; iy < stamp->matrix1->numRows; iy++) { 797 for (int ix = 0; ix < stamp->matrix1->numCols; ix++) { 798 if (!isfinite(stamp->matrix1->data.F64[iy][ix])) { 799 fprintf (stderr, "WARNING: NAN in matrix1\n"); 800 } 801 } 802 } 803 for (int ix = 0; ix < stamp->vector1->n; ix++) { 804 if (!isfinite(stamp->vector1->data.F64[ix])) { 805 fprintf (stderr, "WARNING: NAN in vector1\n"); 806 } 807 } 808 808 #endif 809 809 … … 818 818 819 819 #ifdef TESTING 820 for (int ix = 0; ix < sumVector->n; ix++) {821 if (!isfinite(sumVector->data.F64[ix])) {822 fprintf (stderr, "WARNING: NAN in vector1\n");823 }824 }820 for (int ix = 0; ix < sumVector->n; ix++) { 821 if (!isfinite(sumVector->data.F64[ix])) { 822 fprintf (stderr, "WARNING: NAN in vector1\n"); 823 } 824 } 825 825 #endif 826 826 … … 828 828 829 829 #ifdef TESTING 830 for (int ix = 0; ix < sumVector->n; ix++) {831 if (!isfinite(sumVector->data.F64[ix])) {832 fprintf (stderr, "WARNING: NAN in vector1\n");833 }834 }830 for (int ix = 0; ix < sumVector->n; ix++) { 831 if (!isfinite(sumVector->data.F64[ix])) { 832 fprintf (stderr, "WARNING: NAN in vector1\n"); 833 } 834 } 835 835 { 836 836 psImage *inverse = psMatrixInvert(NULL, sumMatrix, NULL); … … 866 866 867 867 #ifdef TESTING 868 // XXX double-check for NAN in data:869 for (int ix = 0; ix < kernels->solution1->n; ix++) {870 if (!isfinite(kernels->solution1->data.F64[ix])) {871 fprintf (stderr, "WARNING: NAN in vector1\n");872 }873 }868 // XXX double-check for NAN in data: 869 for (int ix = 0; ix < kernels->solution1->n; ix++) { 870 if (!isfinite(kernels->solution1->data.F64[ix])) { 871 fprintf (stderr, "WARNING: NAN in vector1\n"); 872 } 873 } 874 874 #endif 875 875 … … 1127 1127 source = stamp->image1; 1128 1128 convolutions = stamp->convolutions1; 1129 1130 // Having convolved image1 and changed its normalisation, we need to renormalise the residual 1131 // so that it is on the scale of image1. 1132 psImage *image = pmSubtractionKernelImage(kernels, stamp->xNorm, stamp->yNorm, 1133 false); // Kernel image 1134 if (!image) { 1135 psError(PS_ERR_UNKNOWN, false, "Unable to generate image of kernel."); 1136 return false; 1137 } 1138 double sumKernel = 0; // Sum of kernel, for normalising residual 1139 int size = kernels->size; // Half-size of kernel 1140 int fullSize = 2 * size + 1; // Full size of kernel 1141 for (int y = 0; y < fullSize; y++) { 1142 for (int x = 0; x < fullSize; x++) { 1143 sumKernel += image->data.F32[y][x]; 1144 } 1145 } 1146 psFree(image); 1147 devNorm = 1.0 / sumKernel / numPixels; 1129 1148 break; 1130 1149 case PM_SUBTRACTION_MODE_2:
Note:
See TracChangeset
for help on using the changeset viewer.
