Changeset 17729 for trunk/psModules/src/imcombine/pmSubtractionMask.c
- Timestamp:
- May 16, 2008, 4:30:51 PM (18 years ago)
- File:
-
- 1 edited
-
trunk/psModules/src/imcombine/pmSubtractionMask.c (modified) (2 diffs)
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 }
Note:
See TracChangeset
for help on using the changeset viewer.
