Changeset 26769 for branches/eam_branches/20091201/psModules
- Timestamp:
- Feb 4, 2010, 3:18:46 PM (16 years ago)
- Location:
- branches/eam_branches/20091201/psModules/src/imcombine
- Files:
-
- 5 edited
-
pmStackReject.c (modified) (1 diff)
-
pmSubtraction.c (modified) (4 diffs)
-
pmSubtraction.h (modified) (1 diff)
-
pmSubtractionMatch.c (modified) (7 diffs)
-
pmSubtractionMatch.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/20091201/psModules/src/imcombine/pmStackReject.c
r26761 r26769 156 156 psRegion *region = subRegions->data[i]; // Region of interest 157 157 pmSubtractionKernels *kernels = subKernels->data[i]; // Kernel of interest 158 if (!pmSubtractionConvolve(NULL, convRO, NULL, inRO, NULL, stride, 0, 0, 1.0, 0.0, 158 if (!pmSubtractionConvolve(NULL, convRO, NULL, inRO, NULL, stride, 0, 0, 1.0, 0.0, 0.0, 159 159 region, kernels, false, true)) { 160 160 psError(PS_ERR_UNKNOWN, false, "Unable to convolve mask image in region %d.", i); -
branches/eam_branches/20091201/psModules/src/imcombine/pmSubtraction.c
r26759 r26769 1153 1153 bool pmSubtractionConvolve(pmReadout *out1, pmReadout *out2, const pmReadout *ro1, const pmReadout *ro2, 1154 1154 psImage *subMask, int stride, psImageMaskType maskBad, psImageMaskType maskPoor, 1155 float poorFrac, float kernelError, const psRegion *region,1155 float poorFrac, float kernelError, float covarFrac, const psRegion *region, 1156 1156 const pmSubtractionKernels *kernels, bool doBG, bool useFFT) 1157 1157 { … … 1195 1195 PS_ASSERT_FLOAT_LARGER_THAN_OR_EQUAL(kernelError, 0.0, false); 1196 1196 PS_ASSERT_FLOAT_LESS_THAN_OR_EQUAL(kernelError, 1.0, false); 1197 PS_ASSERT_FLOAT_LARGER_THAN_OR_EQUAL(covarFrac, 0.0, false); 1198 PS_ASSERT_FLOAT_LESS_THAN(covarFrac, 1.0, false); 1197 1199 if (region && psRegionIsNaN(*region)) { 1198 1200 psString string = psRegionToString(*region); … … 1327 1329 if (kernels->mode == PM_SUBTRACTION_MODE_1 || kernels->mode == PM_SUBTRACTION_MODE_DUAL) { 1328 1330 psKernel *kernel = pmSubtractionKernel(kernels, 0.0, 0.0, false); // Convolution kernel 1331 psKernelTruncate(kernel, covarFrac); 1329 1332 out1->covariance = psImageCovarianceCalculate(kernel, ro1->covariance); 1330 1333 psFree(kernel); … … 1333 1336 psKernel *kernel = pmSubtractionKernel(kernels, 0.0, 0.0, 1334 1337 kernels->mode == PM_SUBTRACTION_MODE_DUAL); // Conv. kernel 1338 psKernelTruncate(kernel, covarFrac); 1335 1339 out2->covariance = psImageCovarianceCalculate(kernel, ro2->covariance); 1336 1340 psFree(kernel); -
branches/eam_branches/20091201/psModules/src/imcombine/pmSubtraction.h
r26739 r26769 113 113 psImageMaskType maskPoor, ///< Mask value to give poor pixels 114 114 float poorFrac, ///< Fraction for "poor" 115 float sysError, ///< Relative systematic error 115 float kernelError, ///< Relative systematic error in kernel 116 float covarFrac, ///< Truncation fraction for kernel before covariance calculation 116 117 const psRegion *region, ///< Region to convolve (or NULL) 117 118 const pmSubtractionKernels *kernels, ///< Kernel parameters -
branches/eam_branches/20091201/psModules/src/imcombine/pmSubtractionMatch.c
r26741 r26769 121 121 float skyError, // Systematic error in images 122 122 float kernelError, // Systematic error in kernel 123 float covarFrac, // Fraction for kernel truncation before covariance 123 124 psImageMaskType maskVal, // Value to mask for input 124 125 psImageMaskType maskBad, // Mask for output bad pixels … … 181 182 PS_ASSERT_FLOAT_LESS_THAN(kernelError, 1.0, false); 182 183 } 184 PS_ASSERT_FLOAT_LARGER_THAN_OR_EQUAL(covarFrac, 0.0, false); 185 PS_ASSERT_FLOAT_LESS_THAN(covarFrac, 1.0, false); 183 186 // Don't care about maskVal 184 187 // Don't care about maskBad … … 246 249 247 250 bool pmSubtractionMatchPrecalc(pmReadout *conv1, pmReadout *conv2, const pmReadout *ro1, const pmReadout *ro2, 248 psMetadata *analysis, int stride, float kernelError, 251 psMetadata *analysis, int stride, float kernelError, float covarFrac, 249 252 psImageMaskType maskVal, psImageMaskType maskBad, psImageMaskType maskPoor, 250 253 float poorFrac, float badFrac) … … 316 319 } 317 320 318 if (!subtractionMatchCheck(conv1, conv2, ro1, ro2, stride, NAN, NAN, NAN, kernelError, 321 if (!subtractionMatchCheck(conv1, conv2, ro1, ro2, stride, NAN, NAN, NAN, kernelError, covarFrac, 319 322 maskVal, maskBad, maskPoor, poorFrac, badFrac, mode)) { 320 323 psFree(kernels); … … 357 360 358 361 if (!pmSubtractionConvolve(conv1, conv2, ro1, ro2, subMask, stride, maskBad, maskPoor, poorFrac, 359 kernelError, region, kernel, true, useFFT)) {362 kernelError, covarFrac, region, kernel, true, useFFT)) { 360 363 psError(PS_ERR_UNKNOWN, false, "Unable to convolve image."); 361 364 psFree(outAnalysis); … … 388 391 bool optimum, const psVector *optFWHMs, int optOrder, float optThreshold, 389 392 int iter, float rej, float normFrac, float sysError, float skyError, 390 float kernelError, psImageMaskType maskVal, psImageMaskType maskBad,393 float kernelError, float covarFrac, psImageMaskType maskVal, psImageMaskType maskBad, 391 394 psImageMaskType maskPoor, float poorFrac, float badFrac, pmSubtractionMode subMode) 392 395 { 393 396 if (!subtractionMatchCheck(conv1, conv2, ro1, ro2, stride, normFrac, sysError, skyError, kernelError, 394 maskVal, maskBad, maskPoor, poorFrac, badFrac, subMode)) {397 covarFrac, maskVal, maskBad, maskPoor, poorFrac, badFrac, subMode)) { 395 398 return false; 396 399 } … … 779 782 psTrace("psModules.imcombine", 2, "Convolving...\n"); 780 783 if (!pmSubtractionConvolve(conv1, conv2, ro1, ro2, subMask, stride, maskBad, maskPoor, poorFrac, 781 kernelError, region, kernels, true, useFFT)) {784 kernelError, covarFrac, region, kernels, true, useFFT)) { 782 785 psError(PS_ERR_UNKNOWN, false, "Unable to convolve image."); 783 786 goto MATCH_ERROR; -
branches/eam_branches/20091201/psModules/src/imcombine/pmSubtractionMatch.h
r26703 r26769 43 43 float skyError, ///< Relative systematic error in images 44 44 float kernelError, ///< Relative systematic error in kernel 45 float covarFrac, ///< Fraction for kernel truncation before covariance calculation 45 46 psImageMaskType maskVal, ///< Value to mask for input 46 47 psImageMaskType maskBad, ///< Mask for output bad pixels … … 59 60 int stride, ///< Size for convolution patches 60 61 float kernelError, ///< Relative systematic error in kernel 62 float covarFrac, ///< Fraction for kernel truncation before covariance calc. 61 63 psImageMaskType maskVal, ///< Value to mask for input 62 64 psImageMaskType maskBad, ///< Mask for output bad pixels
Note:
See TracChangeset
for help on using the changeset viewer.
