Changeset 17370 for trunk/psModules/src/imcombine/pmSubtraction.c
- Timestamp:
- Apr 7, 2008, 12:46:39 PM (18 years ago)
- File:
-
- 1 edited
-
trunk/psModules/src/imcombine/pmSubtraction.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/imcombine/pmSubtraction.c
r17321 r17370 4 4 * @author GLG, MHPCC 5 5 * 6 * @version $Revision: 1.8 4$ $Name: not supported by cvs2svn $7 * @date $Date: 2008-04-0 4 23:03:42$6 * @version $Revision: 1.85 $ $Name: not supported by cvs2svn $ 7 * @date $Date: 2008-04-07 22:46:39 $ 8 8 * 9 9 * Copyright 2004-2007 Institute for Astronomy, University of Hawaii … … 637 637 const pmSubtractionKernels *kernels, bool doBG, bool useFFT) 638 638 { 639 PM_ASSERT_READOUT_NON_NULL(out1, false); 640 PM_ASSERT_READOUT_NON_NULL(out2, false); 639 if (kernels->mode != PM_SUBTRACTION_MODE_2) { 640 PM_ASSERT_READOUT_NON_NULL(out1, false); 641 } 642 if (kernels->mode != PM_SUBTRACTION_MODE_1) { 643 PM_ASSERT_READOUT_NON_NULL(out2, false); 644 } 641 645 PM_ASSERT_READOUT_NON_NULL(ro1, false); 642 646 PM_ASSERT_READOUT_NON_NULL(ro2, false); … … 695 699 psImage *convMask = NULL; // Convolved mask image (common to inputs 1 and 2) 696 700 if (subMask) { 697 if (!out1->mask) { 698 out1->mask = psImageAlloc(numCols, numRows, PS_TYPE_MASK); 699 } 700 convMask = out1->mask; 701 if (kernels->mode == PM_SUBTRACTION_MODE_1 || kernels->mode == PM_SUBTRACTION_MODE_DUAL) { 702 if (!out1->mask) { 703 out1->mask = psImageAlloc(numCols, numRows, PS_TYPE_MASK); 704 } 705 convMask = out1->mask; 706 } 707 if (kernels->mode == PM_SUBTRACTION_MODE_2 || kernels->mode == PM_SUBTRACTION_MODE_DUAL) { 708 if (convMask) { 709 if (out2->mask) { 710 psFree(out2->mask); 711 } 712 out2->mask = psMemIncrRefCounter(convMask); 713 } else { 714 if (!out2->mask) { 715 out2->mask = psImageAlloc(numCols, numRows, PS_TYPE_MASK); 716 } 717 convMask = out2->mask; 718 } 719 } 701 720 psImageInit(convMask, 0); 702 if (out2->mask) {703 psFree(out2->mask);704 }705 out2->mask = psMemIncrRefCounter(convMask);706 721 } 707 722 … … 794 809 switch (kernels->mode) { 795 810 case PM_SUBTRACTION_MODE_1: 796 out2->image = psMemIncrRefCounter(ro2->image); 797 out2->weight = psMemIncrRefCounter(ro2->weight); 798 out2->mask = psMemIncrRefCounter(ro2->mask); 811 if (out2) { 812 out2->image = psMemIncrRefCounter(ro2->image); 813 out2->weight = psMemIncrRefCounter(ro2->weight); 814 out2->mask = psMemIncrRefCounter(ro2->mask); 815 } 799 816 break; 800 817 case PM_SUBTRACTION_MODE_2: 801 out1->image = psMemIncrRefCounter(ro1->image); 802 out1->weight = psMemIncrRefCounter(ro1->weight); 803 out1->mask = psMemIncrRefCounter(ro1->mask); 818 if (out1) { 819 out1->image = psMemIncrRefCounter(ro1->image); 820 out1->weight = psMemIncrRefCounter(ro1->weight); 821 out1->mask = psMemIncrRefCounter(ro1->mask); 822 } 804 823 break; 805 824 case PM_SUBTRACTION_MODE_DUAL:
Note:
See TracChangeset
for help on using the changeset viewer.
