Changeset 2783 for trunk/stac/src/stac.c
- Timestamp:
- Dec 21, 2004, 4:07:04 PM (22 years ago)
- File:
-
- 1 edited
-
trunk/stac/src/stac.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/stac/src/stac.c
r2764 r2783 36 36 psTraceSetLevel("stac.rejection",10); 37 37 psTraceSetLevel("stac.time",10); 38 38 psTraceSetLevel("stac.area",10); 39 39 40 40 // Set logging level … … 50 50 psArray *maps = stacReadMaps(config); 51 51 52 psTrace("stac.time", 1, "I/O completed at %f seconds\n", getTime() - startTime); 53 52 54 // Invert maps 53 55 psArray *inverseMaps = stacInvertMaps(maps); … … 57 59 58 60 // Transform inputs and errors 61 psArray *transformed = NULL; 59 62 psArray *transformedErrors = NULL; 60 psArray *transformed = stacTransform(inputs, inverseMaps, errors, &transformedErrors, NULL, config);63 (void)stacTransform(&transformed, &transformedErrors, inputs, inverseMaps, errors, NULL, NULL, config); 61 64 62 65 psTrace("stac.time",1,"Transformation completed at %f seconds\n", getTime() - startTime); … … 64 67 // Combine with rejection 65 68 psArray *rejected = NULL; 66 psImage *combined = stacCombine(transformed, transformedErrors, 2, &rejected, config); 69 psImage *combined = NULL; 70 (void)stacCombine(&combined, &rejected, transformed, transformedErrors, config->nReject, NULL, config); 71 72 psTrace("stac.time",1,"First combination completed at %f seconds\n", getTime() - startTime); 67 73 68 74 #ifdef TESTING … … 75 81 psArray *regions = psArrayAlloc(inputs->n); // Array of images denoting regions of interest 76 82 for (int i = 0; i < inputs->n; i++) { 77 fprintf(stderr, "Finding area of interest for image %d\n", i);78 83 regions->data[i] = stacAreaOfInterest(rejected->data[i], inverseMaps->data[i], 79 84 ((psImage*)(inputs->data[i]))->numCols, … … 89 94 psArray *rejectedSource = stacRejection(inputs, rejected, regions, maps, inverseMaps, config); 90 95 91 // Redo transformation with the mask 92 psFree(transformed); 93 psFree(transformedErrors); 94 psArray *transformedErrorsNew = NULL; 95 psArray *transformedNew = stacTransform(inputs, inverseMaps, errors, &transformedErrorsNew, 96 rejectedSource, config); 96 // Get regions of interest in the output frame 97 psImage *combineRegion = psImageAlloc(config->outnx, config->outny, PS_TYPE_U8); 98 for (int y = 0; y < config->outny; y++) { 99 for (int x = 0; x < config->outnx; x++) { 100 combineRegion->data.U8[y][x] = 0; 101 } 102 } 103 for (int i = 0; i < inputs->n; i++) { 104 psImage *region = stacAreaOfInterest(rejectedSource->data[i], maps->data[i], config->outnx, 105 config->outny); 106 psBinaryOp(combineRegion, combineRegion, "+", region); 107 psFree(region); 108 } 109 110 // Redo transformation with the masks 111 (void)stacTransform(&transformed, &transformedErrors, inputs, inverseMaps, errors, rejectedSource, 112 combineRegion, config); 97 113 98 114 // Combine the newly-transformed CR-free images, no rejection 99 psFree(combined);100 115 psFree(rejected); 101 116 rejected = NULL; 102 combined = stacCombine(transformedNew, transformedErrorsNew, 0, &rejected, config);117 (void)stacCombine(&combined, &rejected, transformed, transformedErrors, 0, combineRegion, config); 103 118 104 119 // Write output image … … 107 122 // Free everything I've used 108 123 stacConfigFree(config); 124 psFree(combineRegion); 109 125 psFree(regions); 110 126 psFree(inputs); … … 113 129 psFree(errors); 114 130 psFree(transformedErrors); 115 psFree(transformed New);131 psFree(transformed); 116 132 psFree(rejectedSource); 117 133 psFree(combined); 118 134 119 psTrace("stac.time",1," Combination completed at %f seconds\n", getTime() - startTime);135 psTrace("stac.time",1,"Final combination completed at %f seconds\n", getTime() - startTime); 120 136 121 137 // Check memory for leaks, corruption
Note:
See TracChangeset
for help on using the changeset viewer.
