IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Apr 9, 2009, 10:18:42 AM (17 years ago)
Author:
Paul Price
Message:

Weight the covariance matrix sum.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ppStack/src/ppStackCombineFinal.c

    r23768 r23769  
    4848
    4949    // Sum covariance matrices
     50    double sumWeights = 0.0;            // Sum of weights
    5051    for (int i = 0; i < options->num; i++) {
    5152        if (options->inputMask->data.U8[i]) {
    5253            psFree(options->covariances->data[i]);
    5354            options->covariances->data[i] = NULL;
     55            continue;
    5456        }
     57        psKernel *covar = options->covariances->data[i]; // Covariance matrix
     58        float weight = options->weightings->data.F32[i]; // Weight to apply
     59        psBinaryOp(covar->image, covar->image, "*", psScalarAlloc(weight, PS_TYPE_F32));
     60        sumWeights += weight;
    5561    }
    56     options->outRO->covariance = psImageCovarianceAverage(options->covariances);
     62    pmReadout *outRO = options->outRO;  // Output readout
     63    outRO->covariance = psImageCovarianceSum(options->covariances);
     64    psBinaryOp(outRO->covariance->image, outRO->covariance->image, "/",
     65               psScalarAlloc(sumWeights, PS_TYPE_F32));
    5766    psFree(options->covariances); options->covariances = NULL;
    5867    psImageCovarianceTransfer(outRO->variance, outRO->covariance);
Note: See TracChangeset for help on using the changeset viewer.