IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Aug 11, 2010, 9:18:20 AM (16 years ago)
Author:
eugene
Message:

some test prints are on; kernel second moments added in quadrature to image second moment

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20100621/psModules/src/imcombine/pmSubtractionKernels.c

    r28866 r28894  
    218218        if (uOrder % 2 == 0 && vOrder % 2 == 0) {
    219219            // 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);
    221223            zeroNull = true;
    222224        } else {
     
    252254
    253255    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
    258261    {
    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
    260264        float min = INFINITY, max = -INFINITY;  // Minimum and maximum kernel value
    261265        for (int v = preCalc->kernel->yMin; v <= preCalc->kernel->yMax; v++) {
    262266            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);
    264270                min = PS_MIN(preCalc->kernel->kernel[v][u], min);
    265271                max = PS_MAX(preCalc->kernel->kernel[v][u], max);
    266272            }
    267273        }
    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);
    269275    }
    270276#endif
Note: See TracChangeset for help on using the changeset viewer.