Changeset 17729
- Timestamp:
- May 16, 2008, 4:30:51 PM (18 years ago)
- Location:
- trunk/psModules/src/imcombine
- Files:
-
- 2 edited
-
pmSubtractionMask.c (modified) (2 diffs)
-
pmSubtractionMask.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/imcombine/pmSubtractionMask.c
r17727 r17729 7 7 8 8 #include "pmSubtraction.h" 9 #include "pmSubtractionKernels.h" 9 10 10 11 #include "pmSubtractionMask.h" … … 208 209 return true; 209 210 } 211 212 213 bool pmSubtractionMaskApply(psImage *image, psImage *weight, const psImage *mask, pmSubtractionMode mode) 214 { 215 PS_ASSERT_IMAGE_NON_NULL(image, false); 216 PS_ASSERT_IMAGE_TYPE(image, PS_TYPE_F32, false); 217 if (weight) { 218 PS_ASSERT_IMAGE_NON_NULL(weight, false); 219 PS_ASSERT_IMAGE_TYPE(weight, PS_TYPE_F32, false); 220 PS_ASSERT_IMAGES_SIZE_EQUAL(weight, image, false); 221 } 222 PS_ASSERT_IMAGE_NON_NULL(mask, false); 223 PS_ASSERT_IMAGE_TYPE(mask, PS_TYPE_MASK, false); 224 PS_ASSERT_IMAGES_SIZE_EQUAL(mask, image, false); 225 226 bool maskVal = PM_SUBTRACTION_MASK_BORDER; // Value to mask 227 switch (mode) { 228 case PM_SUBTRACTION_MODE_1: 229 maskVal |= PM_SUBTRACTION_MASK_CONVOLVE_1; 230 break; 231 case PM_SUBTRACTION_MODE_2: 232 maskVal |= PM_SUBTRACTION_MASK_CONVOLVE_2; 233 break; 234 case PM_SUBTRACTION_MODE_DUAL: 235 maskVal |= PM_SUBTRACTION_MASK_CONVOLVE_2 | PM_SUBTRACTION_MASK_CONVOLVE_2; 236 break; 237 case PM_SUBTRACTION_MODE_ERR: 238 case PM_SUBTRACTION_MODE_UNSURE: 239 default: 240 psError(PS_ERR_BAD_PARAMETER_VALUE, true, "Unsuppored subtraction mode: %x", mode); 241 return false; 242 } 243 244 int numCols = image->numCols, numRows = image->numRows; // Size of image 245 psMaskType **maskData = mask->data.PS_TYPE_MASK_DATA; // Dereference mask 246 247 for (int y = 0; y < numRows; y++) { 248 for (int x = 0; x < numCols; x++) { 249 if (maskData[y][x] & maskVal) { 250 image->data.F32[y][x] = NAN; 251 if (weight) { 252 weight->data.F32[y][x] = NAN; 253 } 254 } 255 } 256 } 257 258 return true; 259 } -
trunk/psModules/src/imcombine/pmSubtractionMask.h
r15756 r17729 22 22 ); 23 23 24 /// Apply the subtraction mask to an image and weight. 25 /// 26 /// Unfortunately, image subtraction may result in a bi-modal image in masked areas, which can upset image 27 /// statistics (very important for quantising images so that a product can be written out!). This function 28 /// sets masked areas to NAN in the image and weight. 29 bool pmSubtractionMaskApply(psImage *image, ///< Image to which to apply mask 30 psImage *weight, ///< Weight map to which to apply mask (or NULL) 31 const psImage *mask, ///< Subtraction mask 32 pmSubtractionMode mode ///< Subtraction mode 33 ); 34 24 35 25 36 #endif
Note:
See TracChangeset
for help on using the changeset viewer.
