Changeset 2670 for trunk/stac/src/stacCombine.c
- Timestamp:
- Dec 8, 2004, 3:12:31 PM (22 years ago)
- File:
-
- 1 edited
-
trunk/stac/src/stacCombine.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/stac/src/stacCombine.c
r2661 r2670 14 14 #if 0 15 15 // Would like to use psVectorStats, but it doesn't have errors built in yet 16 psStats *stats = psStatsAlloc(PS_STAT_SAMPLE_MEAN | PS_STAT_SAMPLE_STDEV);16 psStats *stats = psStatsAlloc(PS_STAT_SAMPLE_MEAN); 17 17 (void)psVectorStats(stats, values, masks, 1); 18 18 float mean = stats->sampleMean; … … 25 25 int num = values->n; 26 26 for (int i = 0; i < num; i++) { 27 if ( masks->data.U8[i]) {27 if (! masks->data.U8[i]) { 28 28 sum += values->data.F32[i] / SQUARE(errors->data.F32[i]); 29 29 weights += 1.0 / SQUARE(errors->data.F32[i]); … … 46 46 { 47 47 psStats *stats = psStatsAlloc(PS_STAT_SAMPLE_MEDIAN); 48 (void)psVectorStats(stats, values, masks, 0);48 (void)psVectorStats(stats, values, masks, 1); 49 49 float median = stats->sampleMedian; 50 50 psFree(stats); … … 132 132 deltas->data.F32[i] = delta; 133 133 if ((pixel >= saturated) || (pixel <= bad) || (! isfinite(pixel)) || (! isfinite(delta))) { 134 mask->data.U8[i] = (psU8) 0; // Don't use!134 mask->data.U8[i] = (psU8)1; // Don't use! 135 135 } else { 136 mask->data.U8[i] = (psU8) 1; // Use.136 mask->data.U8[i] = (psU8)0; // Use. 137 137 } 138 138 } 139 139 140 float average = stacCombineMe dian(pixels, deltas, mask); // Combined value140 float average = stacCombineMean(pixels, deltas, mask); // Combined value 141 141 142 142 #ifdef TESTING … … 145 145 int numGoodPix = 0; 146 146 for (int i = 0; i < nImages; i++) { 147 if ( mask->data.U8[i]) {147 if (! mask->data.U8[i]) { 148 148 chi2->data.F32[y][x] += SQUARE((pixels->data.F32[i] - average) / deltas->data.F32[i]); 149 149 numGoodPix++; … … 158 158 int maxIndex = -1; 159 159 for (int i = 0; i < nImages; i++) { 160 if ( mask->data.U8[i] && ((pixels->data.F32[i] - average) / deltas->data.F32[i] > max)) {160 if (!mask->data.U8[i] && ((pixels->data.F32[i] - average) / deltas->data.F32[i] > max)) { 161 161 max = (pixels->data.F32[i] - average) / deltas->data.F32[i]; 162 162 maxIndex = i; … … 165 165 // Reject the pixel with the maximum deviation 166 166 if (max > reject) { 167 mask->data.U8[maxIndex] = 0;167 mask->data.U8[maxIndex] = 1; 168 168 ((psImage*)((*rejected)->data[maxIndex]))->data.F32[y][x] += 1.0; 169 169 // Re-do combination following rejection
Note:
See TracChangeset
for help on using the changeset viewer.
