Changeset 27696
- Timestamp:
- Apr 15, 2010, 12:50:37 PM (16 years ago)
- File:
-
- 1 edited
-
trunk/ppStack/src/ppStackCombineFinal.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ppStack/src/ppStackCombineFinal.c
r27427 r27696 96 96 // Sum covariance matrices 97 97 if (covariances) { 98 double sumWeights = 0.0; // Sum of weights 99 for (int i = 0; i < options->num; i++) { 100 if (options->inputMask->data.U8[i]) { 101 psFree(covariances->data[i]); 102 covariances->data[i] = NULL; 103 continue; 104 } 105 psKernel *covar = covariances->data[i]; // Covariance matrix 106 if (!covar) { 107 continue; 108 } 109 float weight = options->weightings->data.F32[i]; // Weight to apply 110 psBinaryOp(covar->image, covar->image, "*", psScalarAlloc(weight, PS_TYPE_F32)); 111 sumWeights += weight; 112 } 113 if (sumWeights > 0.0) { 114 outRO->covariance = psImageCovarianceSum(covariances); 115 psBinaryOp(outRO->covariance->image, outRO->covariance->image, "/", 116 psScalarAlloc(sumWeights, PS_TYPE_F32)); 117 psImageCovarianceTransfer(outRO->variance, outRO->covariance); 118 } 98 outRO->covariance = psImageCovarianceAverageWeighted(covariances, options->weightings); 119 99 } else { 120 100 outRO->covariance = psImageCovarianceNone();
Note:
See TracChangeset
for help on using the changeset viewer.
