Changeset 35118 for trunk/ppBackground/src
- Timestamp:
- Feb 7, 2013, 1:40:20 PM (13 years ago)
- Location:
- trunk/ppBackground/src
- Files:
-
- 6 edited
-
ppBackground.h (modified) (2 diffs)
-
ppBackgroundArguments.c (modified) (3 diffs)
-
ppBackgroundCamera.c (modified) (2 diffs)
-
ppBackgroundData.c (modified) (2 diffs)
-
ppBackgroundLoop.c (modified) (1 diff)
-
ppBackgroundRestore.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ppBackground/src/ppBackground.h
r34800 r35118 13 13 psString patternName; // Filename of pattern 14 14 psString backgroundName; // Filename of background 15 psString imageName, maskName; // Filenames of input image/mask 15 psString imageName; // Filenames of input image 16 psString maskName; // Filenames of input mask 17 psString varianceName; // Filenames of input variance 18 psString auxMaskName; // Filename of auxillary mask 16 19 psString outRoot; // Output root name 17 20 psMetadata *stats; // Statistics for output … … 52 55 const pmChip *pattern, // Chip with pattern 53 56 const pmFPAview *view, // View to data 54 pmConfig *config // Configuration 57 pmConfig *config, // Configuration 58 psImageMaskType maskBad // value to use for bad pixels 55 59 ); 56 60 -
trunk/ppBackground/src/ppBackgroundArguments.c
r28543 r35118 49 49 psMetadataAddStr(arguments, PS_LIST_TAIL, "-image", 0, "Filename of image (required)", NULL); 50 50 psMetadataAddStr(arguments, PS_LIST_TAIL, "-mask", 0, "Filename of mask", NULL); 51 psMetadataAddStr(arguments, PS_LIST_TAIL, "-variance", 0, "Filename of variance image", NULL); 52 psMetadataAddStr(arguments, PS_LIST_TAIL, "-auxmask", 0, "Filename of auxiliary mask", NULL); 51 53 psMetadataAddStr(arguments, PS_LIST_TAIL, "-stats", 0, "Output statistics file", NULL); 52 54 psMetadataAddStr(arguments, PS_LIST_TAIL, "-dumpconfig", 0, "Output configuration file", NULL); … … 59 61 data->imageName = psMemIncrRefCounter(psMetadataLookupStr(NULL, arguments, "-image")); 60 62 data->maskName = psMemIncrRefCounter(psMetadataLookupStr(NULL, arguments, "-mask")); 63 data->varianceName = psMemIncrRefCounter(psMetadataLookupStr(NULL, arguments, "-variance")); 64 data->auxMaskName = psMemIncrRefCounter(psMetadataLookupStr(NULL, arguments, "-auxmask")); 61 65 data->outRoot = psStringCopy(argv[1]); 62 66 psMetadataAddStr(arguments, PS_LIST_TAIL, "OUTPUT", 0, "Output root name", data->outRoot); … … 64 68 psTrace("ppBackground", 1, "Done reading command-line arguments\n"); 65 69 66 if (!data->patternName && !data->backgroundName ) {67 psError(PPBACKGROUND_ERR_CONFIG, true, "Must specify at least one of -pattern and -background ");70 if (!data->patternName && !data->backgroundName && !data->auxMaskName) { 71 psError(PPBACKGROUND_ERR_CONFIG, true, "Must specify at least one of -pattern and -background -auxmask"); 68 72 return false; 69 73 } -
trunk/ppBackground/src/ppBackgroundCamera.c
r28289 r35118 65 65 } 66 66 67 fileArguments("VARIANCE", data->varianceName, "Input uncorrected variance", data->config); 68 pmFPAfileBindFromArgs(&status, image, data->config, "PPBACKGROUND.VARIANCE", "VARIANCE"); // File 69 if (!status) { 70 psError(psErrorCodeLast(), false, "Failed to build file from PPBACKGROUND.VARIANCE"); 71 return false; 72 } 73 74 if (data->auxMaskName) { 75 fileArguments("AUXMASK", data->auxMaskName, "Auxiliary mask", data->config); 76 pmFPAfileBindFromArgs(&status, image, data->config, "PPBACKGROUND.AUXMASK", "AUXMASK"); // File 77 if (!status) { 78 psError(psErrorCodeLast(), false, "Failed to build file from PPBACKGROUND.MASK"); 79 return false; 80 } 81 } 82 67 83 pmFPAfile *output = pmFPAfileDefineOutput(data->config, image->fpa, "PPBACKGROUND.OUTPUT"); 68 84 if (!output) { … … 79 95 outMask->save = true; 80 96 97 pmFPAfile *outVariance = pmFPAfileDefineOutput(data->config, output->fpa, "PPBACKGROUND.OUTPUT.VARIANCE"); 98 if (!outVariance) { 99 psError(psErrorCodeLast(), false, "Unable to define output."); 100 return false; 101 } 102 outVariance->save = true; 103 81 104 #if 0 82 105 // Now the camera has been determined, we can read the recipe -
trunk/ppBackground/src/ppBackgroundData.c
r28276 r35118 17 17 psFree(data->imageName); 18 18 psFree(data->maskName); 19 psFree(data->varianceName); 20 psFree(data->auxMaskName); 19 21 psFree(data->outRoot); 20 22 psFree(data->stats); … … 33 35 data->imageName = NULL; 34 36 data->maskName = NULL; 37 data->varianceName = NULL; 38 data->auxMaskName = NULL; 35 39 data->outRoot = NULL; 36 40 data->stats = NULL; -
trunk/ppBackground/src/ppBackgroundLoop.c
r28300 r35118 135 135 pmChip *patternChip = patternFile ? pmFPAviewThisChip(view, patternMosaic) : NULL; // Chip with pattern 136 136 pmChip *bgChip = bgFile ? pmFPAviewThisChip(view, bgFile->fpa) : NULL; // Chip with background model 137 if (!ppBackgroundRestore(chip, bgChip, patternChip, view, config )) {137 if (!ppBackgroundRestore(chip, bgChip, patternChip, view, config, maskBad)) { 138 138 psError(psErrorCodeLast(), false, "Unable to replace background"); 139 139 return false; -
trunk/ppBackground/src/ppBackgroundRestore.c
r34813 r35118 35 35 36 36 bool ppBackgroundRestore(pmChip *chip, const pmChip *background, const pmChip *pattern, 37 const pmFPAview *oldView, pmConfig *config )37 const pmFPAview *oldView, pmConfig *config, psImageMaskType maskBad) 38 38 { 39 39 PS_ASSERT_PTR_NON_NULL(chip, false); … … 120 120 } 121 121 122 psImage *auxMask = psMetadataLookupPtr(NULL, ro->analysis, "EXPNUM"); 123 if (auxMask) { 124 if (auxMask->numCols != mask->numCols || auxMask->numRows != mask->numRows) { 125 psError(PPBACKGROUND_ERR_DATA, true, "auxiliary mask size (%d x %d) does not match input size (%d x %d)", 126 auxMask->numCols, auxMask->numRows, numCols, numRows); 127 return false; 128 } 129 // Arno's masks are floating point, fix later and zero means bad 130 #define AUXMASK_DATA F32 131 for (int y = 0; y < numRows; y++) { 132 for (int x = 0; x < numCols; x++) { 133 if (auxMask->data.AUXMASK_DATA[y][x] == 0) { 134 mask->data.PS_TYPE_IMAGE_MASK_DATA[y][x] |= maskBad; 135 } 136 } 137 } 138 } 139 140 122 141 ro->data_exists = true; 123 142 ro->parent->data_exists = true;
Note:
See TracChangeset
for help on using the changeset viewer.
