Changeset 35867
- Timestamp:
- Jul 31, 2013, 12:51:39 PM (13 years ago)
- Location:
- trunk/psModules/src/imcombine
- Files:
-
- 3 edited
-
pmSubtractionMatch.c (modified) (1 diff)
-
pmSubtractionSimple.c (modified) (7 diffs)
-
pmSubtractionSimple.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/imcombine/pmSubtractionMatch.c
r35771 r35867 540 540 // Bail here if we're doing the simple matching 541 541 if (type == PM_SUBTRACTION_KERNEL_SIMPLE) { 542 if (!pmSubtractionSimpleMatch(conv1,conv2,ro1,ro2,sources,size,maskVal,maskBad,maskPoor )) {542 if (!pmSubtractionSimpleMatch(conv1,conv2,ro1,ro2,sources,size,maskVal,maskBad,maskPoor,optThreshold)) { 543 543 return false; 544 544 } -
trunk/psModules/src/imcombine/pmSubtractionSimple.c
r35821 r35867 90 90 psImageMaskType maskVal, 91 91 psImageMaskType maskBad, 92 psImageMaskType maskPoor 92 psImageMaskType maskPoor, 93 float deconvolveThreshold 93 94 ) { 94 95 // … … 190 191 if (!conv1) { 191 192 if (convolution_direction == 1) { 192 chisq = 100; 193 } 194 convolution_direction = 2; 193 if (sigma1 - sigma2 > deconvolveThreshold) { 194 chisq = 100; 195 } 196 } 197 // convolution_direction = 2; 195 198 } 196 199 if (!conv2) { 197 200 if (convolution_direction == 2) { 198 chisq = 100; 199 } 200 convolution_direction = 1; 201 if (sigma2 - sigma1 > deconvolveThreshold) { 202 chisq = 100; 203 } 204 } 205 // convolution_direction = 1; 201 206 } 202 207 … … 249 254 // Do convolutions 250 255 if (convolution_direction == 1) { 251 psImageSmoothMask_Threaded(imageC1,image1,mask1,maskVal,sigmaKern,6,1e-6); 252 psImageSmoothMask_Threaded(varC1,var1,mask1,maskVal,sigmaKern * M_SQRT1_2,6,1e-6); 253 maskC1 = psImageConvolveMask(maskC1,mask1,maskVal,maskBad, 254 -maskBox,maskBox,-maskBox,maskBox); 255 conv1->covariance = psImageCovarianceCalculate(kernel,ro1->covariance); 256 if (conv1) { 257 psImageSmoothMask_Threaded(imageC1,image1,mask1,maskVal,sigmaKern,6,1e-6); 258 psImageSmoothMask_Threaded(varC1,var1,mask1,maskVal,sigmaKern * M_SQRT1_2,6,1e-6); 259 maskC1 = psImageConvolveMask(maskC1,mask1,maskVal,maskBad, 260 -maskBox,maskBox,-maskBox,maskBox); 261 conv1->covariance = psImageCovarianceCalculate(kernel,ro1->covariance); 262 pmSubtractionBorder(imageC1,varC1,maskC1,maskBox,maskBlank); 263 pmSubtractionMaskApply(imageC1,varC1,maskC1,PM_SUBTRACTION_MODE_1); 264 } 256 265 if (conv2) { 257 266 imageC2 = psImageCopy(imageC2,image2,PS_TYPE_F32); … … 260 269 conv2->covariance = psMemIncrRefCounter(ro2->covariance); 261 270 } 262 pmSubtractionBorder(imageC1,varC1,maskC1,maskBox,maskBlank);263 pmSubtractionMaskApply(imageC1,varC1,maskC1,PM_SUBTRACTION_MODE_1);264 271 } 265 272 else if (convolution_direction == 2) { 266 psImageSmoothMask_Threaded(imageC2,image2,mask2,maskVal,sigmaKern,6,1e-6); 267 psImageSmoothMask_Threaded(varC2,var2,mask2,maskVal,sigmaKern * M_SQRT1_2,6,1e-6); 268 maskC2 = psImageConvolveMask(maskC2,mask2,maskVal,maskBad, 269 -maskBox,maskBox,-maskBox,maskBox); 270 conv2->covariance = psImageCovarianceCalculate(kernel,ro2->covariance); 273 if (conv2) { 274 psImageSmoothMask_Threaded(imageC2,image2,mask2,maskVal,sigmaKern,6,1e-6); 275 psImageSmoothMask_Threaded(varC2,var2,mask2,maskVal,sigmaKern * M_SQRT1_2,6,1e-6); 276 maskC2 = psImageConvolveMask(maskC2,mask2,maskVal,maskBad, 277 -maskBox,maskBox,-maskBox,maskBox); 278 conv2->covariance = psImageCovarianceCalculate(kernel,ro2->covariance); 279 pmSubtractionBorder(imageC2,varC2,maskC2,maskBox,maskBlank); 280 pmSubtractionMaskApply(imageC2,varC2,maskC2,PM_SUBTRACTION_MODE_2); 281 } 271 282 if (conv1) { 272 283 imageC1 = psImageCopy(imageC1,image1,PS_TYPE_F32); … … 275 286 conv1->covariance = psMemIncrRefCounter(ro1->covariance); 276 287 } 277 pmSubtractionBorder(imageC2,varC2,maskC2,maskBox,maskBlank);278 pmSubtractionMaskApply(imageC2,varC2,maskC2,PM_SUBTRACTION_MODE_2);279 288 } 280 289 … … 294 303 float flux1,flux2; 295 304 296 if (conv olution_direction ==1) {305 if (conv1) { 297 306 simple_do_boxphot(&nPix1,&flux1,source,imageC1,maskC1,maskBad,photRadius); 298 if (conv2) { 299 simple_do_boxphot(&nPix2,&flux2,source,imageC2,maskC2,maskBad,photRadius); 300 } 301 else { 302 simple_do_boxphot(&nPix2,&flux2,source,image2,mask2,maskBad,photRadius); 303 } 304 } 305 else if (convolution_direction == 2) { 307 } 308 else { 309 simple_do_boxphot(&nPix1,&flux1,source,image1,mask1,maskBad,photRadius); 310 } 311 312 if (conv2) { 306 313 simple_do_boxphot(&nPix2,&flux2,source,imageC2,maskC2,maskBad,photRadius); 307 if (conv1) { 308 simple_do_boxphot(&nPix1,&flux1,source,imageC1,maskC1,maskBad,photRadius); 309 } 310 else { 311 simple_do_boxphot(&nPix1,&flux1,source,image1,mask1,maskBad,photRadius); 312 } 313 } 314 } 315 else { 316 simple_do_boxphot(&nPix2,&flux2,source,image2,mask2,maskBad,photRadius); 317 } 318 314 319 logFluxDifferences->data.F32[i] = flux2 - flux1; 315 320 fitMask->data.PS_TYPE_VECTOR_MASK_DATA[i] = 0; … … 321 326 // fprintf(stderr,"SOURCES: %d %g %g %g -> %d %d %g %g %d %g\n",i,source->peak->xf,source->peak->yf,source->psfMag, 322 327 // nPix1,nPix2,flux1,flux2,fitMask->data.PS_TYPE_VECTOR_MASK_DATA[i],logFluxDifferences->data.F32[i]); 323 324 328 } 325 329 -
trunk/psModules/src/imcombine/pmSubtractionSimple.h
r35771 r35867 16 16 psImageMaskType maskVal, 17 17 psImageMaskType maskBad, 18 psImageMaskType maskPoor 18 psImageMaskType maskPoor, 19 float deconvolveThreshold 19 20 ); 20 21
Note:
See TracChangeset
for help on using the changeset viewer.
