IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Dec 13, 2007, 11:32:44 AM (18 years ago)
Author:
Paul Price
Message:

Updates trying to get dual-convolution to work. It doesn't yet.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/imcombine/pmSubtraction.c

    r15756 r15809  
    44 *  @author GLG, MHPCC
    55 *
    6  *  @version $Revision: 1.74 $ $Name: not supported by cvs2svn $
    7  *  @date $Date: 2007-12-07 01:57:15 $
     6 *  @version $Revision: 1.75 $ $Name: not supported by cvs2svn $
     7 *  @date $Date: 2007-12-13 21:32:44 $
    88 *
    99 *  Copyright 2004-2007 Institute for Astronomy, University of Hawaii
     
    165165    }
    166166
    167     if (!wantDual) {
    168         // Put in the normalisation component
    169         kernel->kernel[0][0] += p_pmSubtractionSolutionNorm(kernels);
    170     }
    171 
     167    // Put in the normalisation component
     168    kernel->kernel[0][0] += (wantDual ? 1.0 : p_pmSubtractionSolutionNorm(kernels));
    172169
    173170    return kernel;
     
    279276                                  float background, // Background value to apply
    280277                                  psRegion region, // Region to convolve
    281                                   bool useFFT  // Use FFT to convolve?
     278                                  bool useFFT,  // Use FFT to convolve?
     279                                  bool wantDual // Want the dual convolution?
    282280    )
    283281{
    284     *kernelImage = solvedKernel(*kernelImage, kernels, polyValues, false);
     282    *kernelImage = solvedKernel(*kernelImage, kernels, polyValues, wantDual);
    285283    if (weight) {
    286284        *kernelWeight = varianceKernel(*kernelWeight, *kernelImage);
     
    559557                stamp->x = 0;
    560558                stamp->y = 0;
     559                stamp->xNorm = NAN;
     560                stamp->yNorm = NAN;
    561561                stamp->status = PM_SUBTRACTION_STAMP_REJECTED;
    562562                // Recalculate convolutions
     
    568568                psFree(stamp->weight);
    569569                stamp->image1 = stamp->image2 = stamp->weight = NULL;
     570                psFree(stamp->matrix1);
     571                psFree(stamp->matrix2);
     572                psFree(stamp->matrixX);
     573                stamp->matrix1 = stamp->matrix2 = stamp->matrixX = NULL;
     574                psFree(stamp->vector1);
     575                psFree(stamp->vector2);
     576                stamp->vector1 = stamp->vector2 = NULL;
    570577            } else {
    571578                numGood++;
     
    651658    PM_ASSERT_SUBTRACTION_KERNELS_NON_NULL(kernels, false);
    652659    PM_ASSERT_SUBTRACTION_KERNELS_SOLUTION(kernels, false);
    653     if (kernels->mode != PM_SUBTRACTION_MODE_1) {
     660    if (kernels->mode == PM_SUBTRACTION_MODE_DUAL) {
    654661        PS_ASSERT_PTR_NON_NULL(out2, false);
    655662        PS_ASSERT_PTR_NON_NULL(ro2, false);
     
    812819
    813820            convolveRegion(convImage1, convWeight1, &kernelImage, &kernelWeight, image, weight,
    814                            subMask, maskSource, kernels, polyValues, background, subRegion, useFFT);
     821                           subMask, maskSource, kernels, polyValues, background, subRegion, useFFT, false);
    815822
    816823            if (kernels->mode == PM_SUBTRACTION_MODE_DUAL) {
    817824                convolveRegion(convImage2, convWeight2, &kernelImage, &kernelWeight, ro2->image, ro2->weight,
    818                                subMask, maskSource, kernels, polyValues, background, subRegion, useFFT);
     825                               subMask, maskSource, kernels, polyValues, background, subRegion, useFFT, true);
    819826            }
    820827
Note: See TracChangeset for help on using the changeset viewer.