Changeset 28894 for branches/eam_branches/ipp-20100621/psModules/src/imcombine/pmSubtractionKernels.c
- Timestamp:
- Aug 11, 2010, 9:18:20 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20100621/psModules/src/imcombine/pmSubtractionKernels.c
r28866 r28894 218 218 if (uOrder % 2 == 0 && vOrder % 2 == 0) { 219 219 // Even functions: normalise to unit sum and subtract null pixel so that sum is zero 220 scale2D = 1.0 / fabs(sum); 220 // Re-normalize 221 // scale2D = 1.0 / fabs(sum); 222 scale2D = 1.0 / sqrt(sum2); 221 223 zeroNull = true; 222 224 } else { … … 252 254 253 255 if (zeroNull) { 254 preCalc->kernel->kernel[0][0] -= 1.0; 255 } 256 257 #if 0 256 // preCalc->kernel->kernel[0][0] -= 1.0; 257 preCalc->kernel->kernel[0][0] -= sum / sqrt (sum2); 258 } 259 260 #if 1 258 261 { 259 double sum = 0.0; // Sum of kernel component 262 double Sum = 0.0; // Sum of kernel component 263 double Sum2 = 0.0; // Sum of kernel component 260 264 float min = INFINITY, max = -INFINITY; // Minimum and maximum kernel value 261 265 for (int v = preCalc->kernel->yMin; v <= preCalc->kernel->yMax; v++) { 262 266 for (int u = preCalc->kernel->xMin; u <= preCalc->kernel->xMax; u++) { 263 sum += preCalc->kernel->kernel[v][u]; 267 double value = preCalc->kernel->kernel[v][u]; 268 Sum += value; 269 Sum2 += PS_SQR(value); 264 270 min = PS_MIN(preCalc->kernel->kernel[v][u], min); 265 271 max = PS_MAX(preCalc->kernel->kernel[v][u], max); 266 272 } 267 273 } 268 fprintf(stderr, "%d mod: %lf, null: %f, min: %lf, max: %lf, scale: %f\n", index, sum, preCalc->kernel->kernel[0][0], min, max, scale2D);274 fprintf(stderr, "%d sum: %lf, sum2: %lf, null: %f, min: %lf, max: %lf, scale: %f\n", index, Sum, Sum2, preCalc->kernel->kernel[0][0], min, max, scale2D); 269 275 } 270 276 #endif
Note:
See TracChangeset
for help on using the changeset viewer.
