Changeset 25060 for trunk/psModules/src/imcombine/pmSubtractionAnalysis.c
- Timestamp:
- Aug 12, 2009, 6:51:33 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/imcombine/pmSubtractionAnalysis.c
r25044 r25060 17 17 18 18 19 bool pmSubtractionAnalysis(psMetadata *analysis, pmSubtractionKernels *kernels, psRegion *region, 19 bool pmSubtractionAnalysis(psMetadata *analysis, psMetadata *header, 20 pmSubtractionKernels *kernels, psRegion *region, 20 21 int numCols, int numRows) 21 22 { 22 if (analysis) { 23 PS_ASSERT_METADATA_NON_NULL(analysis, false); 24 } 23 PS_ASSERT_METADATA_NON_NULL(analysis, false); 24 PS_ASSERT_METADATA_NON_NULL(header, false); 25 25 PM_ASSERT_SUBTRACTION_KERNELS_NON_NULL(kernels, false); 26 26 PM_ASSERT_SUBTRACTION_KERNELS_SOLUTION(kernels, false); … … 38 38 PS_DATA_REGION | PS_META_DUPLICATE_OK, 39 39 "Region over which subtraction was performed", subRegion); 40 41 psString string = psRegionToString(*subRegion); 40 42 psFree(subRegion); 43 44 psMetadataAddPtr(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_REGION, 45 PS_DATA_REGION | PS_META_DUPLICATE_OK, 46 "Region over which subtraction was performed", string); 47 psFree(string); 41 48 } 42 49 … … 45 52 PS_DATA_UNKNOWN | PS_META_DUPLICATE_OK, "Subtraction kernels", kernels); 46 53 psMetadataAddS32(analysis, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_MODE, 47 PS_META_DUPLICATE_OK, "Subtraction kernels", kernels->mode); 54 PS_META_DUPLICATE_OK, "Subtraction mode", kernels->mode); 55 psMetadataAddS32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_MODE, 56 PS_META_DUPLICATE_OK, "Subtraction mode", kernels->mode); 48 57 49 58 // Realisations of kernel … … 163 172 psFree(image); 164 173 165 psMetadataItem *item = psMetadataLookup(analysis, PM_SUBTRACTION_ANALYSIS_DECONV_MAX); // Previous 166 if (item) { 167 item->data.F32 = PS_MAX(item->data.F32, max); 168 } else { 169 psMetadataAddF32(analysis, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_DECONV_MAX, 0, 170 "Maximum deconvolution fraction", max); 174 { 175 psMetadataItem *item = psMetadataLookup(analysis, PM_SUBTRACTION_ANALYSIS_DECONV_MAX); // Previous 176 if (item) { 177 max = item->data.F32 = PS_MAX(item->data.F32, max); 178 } else { 179 psMetadataAddF32(analysis, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_DECONV_MAX, 0, 180 "Maximum deconvolution fraction", max); 181 } 182 } 183 184 { 185 psMetadataItem *item = psMetadataLookup(header, PM_SUBTRACTION_ANALYSIS_DECONV_MAX); // Previous 186 if (item) { 187 item->data.F32 = max; 188 } else { 189 psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_DECONV_MAX, 0, 190 "Maximum deconvolution fraction", max); 191 } 171 192 } 172 193 } … … 216 237 psMetadataAddF32(analysis, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_MYY, 217 238 PS_META_DUPLICATE_OK, "Moment in yy", m02); 239 240 psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_NORM, 241 PS_META_DUPLICATE_OK, "Normalisation", m00); 242 psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_MX, 243 PS_META_DUPLICATE_OK, "Moment in x", m10); 244 psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_MY, 245 PS_META_DUPLICATE_OK, "Moment in y", m01); 246 psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_MXX, 247 PS_META_DUPLICATE_OK, "Moment in xx", m20); 248 psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_MXY, 249 PS_META_DUPLICATE_OK, "Moment in xy", m11); 250 psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_MYY, 251 PS_META_DUPLICATE_OK, "Moment in yy", m02); 218 252 } 219 253 … … 225 259 226 260 psMetadataAddF32(analysis, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_BGDIFF, 261 PS_META_DUPLICATE_OK, "Background difference", bg); 262 psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_BGDIFF, 227 263 PS_META_DUPLICATE_OK, "Background difference", bg); 228 264 psFree(polyValues); … … 237 273 psMetadataAddF32(analysis, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_DEV_RMS, 0, "RMS stamp deviation", 238 274 kernels->rms); 275 276 psMetadataAddS32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_STAMPS, 0, "Number of stamps", 277 kernels->numStamps); 278 psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_DEV_MEAN, 0, "Mean stamp deviation", 279 kernels->mean); 280 psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_DEV_RMS, 0, "RMS stamp deviation", 281 kernels->rms); 239 282 } 240 283
Note:
See TracChangeset
for help on using the changeset viewer.
