Changeset 19122 for trunk/psModules/src/imcombine/pmSubtraction.c
- Timestamp:
- Aug 18, 2008, 2:44:42 PM (18 years ago)
- File:
-
- 1 edited
-
trunk/psModules/src/imcombine/pmSubtraction.c (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/imcombine/pmSubtraction.c
r19061 r19122 203 203 // Convolve an image using FFT 204 204 static void convolveFFT(psImage *target,// Place the result in here 205 constpsImage *image, // Image to convolve206 constpsImage *mask, // Mask image205 psImage *image, // Image to convolve 206 psImage *mask, // Mask image 207 207 psMaskType maskVal, // Value to mask 208 208 const psKernel *kernel, // Kernel by which to convolve … … 217 217 bool threaded = pmSubtractionThreaded(); // Are we running threaded? 218 218 219 // Casting away const for image, mask220 219 if (threaded) { 221 psMutexLock( (psImage*)image);222 } 223 psImage *subImage = psImageSubset( (psImage*)image, border); // Subimage to convolve220 psMutexLock(image); 221 } 222 psImage *subImage = psImageSubset(image, border); // Subimage to convolve 224 223 if (threaded) { 225 psMutexUnlock( (psImage*)image);226 psMutexLock( (psImage*)mask);227 } 228 psImage *subMask = mask ? psImageSubset( (psImage*)mask, border) : NULL; // Subimage mask224 psMutexUnlock(image); 225 psMutexLock(mask); 226 } 227 psImage *subMask = mask ? psImageSubset(mask, border) : NULL; // Subimage mask 229 228 if (threaded) { 230 psMutexUnlock( (psImage*)mask);229 psMutexUnlock(mask); 231 230 } 232 231 … … 234 233 235 234 if (threaded) { 236 psMutexLock( (psImage*)image);235 psMutexLock(image); 237 236 } 238 237 psFree(subImage); 239 238 if (threaded) { 240 psMutexUnlock( (psImage*)image);241 psMutexLock( (psImage*)mask);239 psMutexUnlock(image); 240 psMutexLock(mask); 242 241 } 243 242 psFree(subMask); 244 243 if (threaded) { 245 psMutexUnlock( (psImage*)mask);244 psMutexUnlock(mask); 246 245 } 247 246 … … 274 273 psMutexUnlock(target); 275 274 } 275 276 276 return; 277 277 } … … 305 305 psKernel **kernelImage, // Convolution kernel for the image 306 306 psKernel **kernelWeight, // Convolution kernel for the weight map, or NULL 307 constpsImage *image, // Image to convolve308 constpsImage *weight, // Weight map to convolve, or NULL309 constpsImage *subMask, // Subtraction mask307 psImage *image, // Image to convolve 308 psImage *weight, // Weight map to convolve, or NULL 309 psImage *subMask, // Subtraction mask 310 310 psMaskType maskVal, // Mask value to apply in convolution 311 311 const pmSubtractionKernels *kernels, // Kernels … … 755 755 static bool subtractionConvolvePatch(int numCols, int numRows, int x0, int y0, 756 756 pmReadout *out1, pmReadout *out2, psImage *convMask, 757 const pmReadout *ro1, const pmReadout *ro2, constpsImage *subMask,757 const pmReadout *ro1, const pmReadout *ro2, psImage *subMask, 758 758 psMaskType blank, psMaskType maskSource, psMaskType maskTarget, 759 759 const psRegion *region, const pmSubtractionKernels *kernels, … … 824 824 const pmReadout *ro1 = args->data[7]; // Input readout 1 825 825 const pmReadout *ro2 = args->data[8]; // Input readout 2 826 constpsImage *subMask = args->data[9]; // Subtraction mask826 psImage *subMask = args->data[9]; // Subtraction mask 827 827 psMaskType blank = PS_SCALAR_VALUE(args->data[10], U8); // Output mask value 828 828 psMaskType maskSource = PS_SCALAR_VALUE(args->data[11], U8); // Mask value corresponding to source image … … 839 839 840 840 bool pmSubtractionConvolve(pmReadout *out1, pmReadout *out2, const pmReadout *ro1, const pmReadout *ro2, 841 constpsImage *subMask, psMaskType blank, const psRegion *region,841 psImage *subMask, psMaskType blank, const psRegion *region, 842 842 const pmSubtractionKernels *kernels, bool doBG, bool useFFT) 843 843 { … … 938 938 psImage *convMask = NULL; // Convolved mask image (common to inputs 1 and 2) 939 939 if (subMask) { 940 if (threaded) { 941 psMutexInit(subMask); 942 } 940 943 if (kernels->mode == PM_SUBTRACTION_MODE_1 || kernels->mode == PM_SUBTRACTION_MODE_DUAL) { 941 944 if (!out1->mask) { … … 1045 1048 } 1046 1049 1050 if (subMask && threaded) { 1051 psMutexDestroy(subMask); 1052 } 1053 1047 1054 // Copy anything that wasn't convolved 1048 1055 switch (kernels->mode) {
Note:
See TracChangeset
for help on using the changeset viewer.
