IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 14332


Ignore:
Timestamp:
Jul 20, 2007, 10:12:44 AM (19 years ago)
Author:
magnier
Message:

adding output target to psImageConvolveDirect API

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/imageops/psImageConvolve.c

    r13350 r14332  
    77/// @author Eugene Magnier, IfA
    88///
    9 /// @version $Revision: 1.52 $ $Name: not supported by cvs2svn $
    10 /// @date $Date: 2007-05-11 16:48:31 $
     9/// @version $Revision: 1.53 $ $Name: not supported by cvs2svn $
     10/// @date $Date: 2007-07-20 20:12:31 $
    1111///
    1212/// Copyright 2004-2007 Institute for Astronomy, University of Hawaii
     
    200200}
    201201
    202 psImage *psImageConvolveDirect(const psImage *in,
     202psImage *psImageConvolveDirect(psImage *out,
     203                               const psImage *in,
    203204                               const psKernel *kernel)
    204205{
     
    222223    int numCols = in->numCols;          // Number of columns
    223224
    224     psImage *out;                       // Image to be returned
    225 
    226225#if 1
    227226
     
    231230    case PS_TYPE_##TYPE: { \
    232231        ps##TYPE **inData = in->data.TYPE; /* Dereference input data */ \
    233         out = psImageAlloc(numCols, numRows, PS_TYPE_##TYPE); \
     232        out = psImageRecycle(out, numCols, numRows, PS_TYPE_##TYPE); \
    234233        for (int row = 0; row < numRows; row++) { \
    235234            ps##TYPE *outRow = out->data.TYPE[row]; \
     
    253252    case PS_TYPE_##TYPE: { \
    254253        ps##TYPE **inData = in->data.TYPE; /* Dereference input data */ \
    255         out = psImageAlloc(numCols, numRows, PS_TYPE_##TYPE); \
     254        out = psImageRecycle(out, numCols, numRows, PS_TYPE_##TYPE); \
    256255        psImageInit(out, 0.0); \
    257256        for (int ky = yMin; ky <= yMax; ky++) { \
  • trunk/psLib/src/imageops/psImageConvolve.h

    r12748 r14332  
    55 * @author Robert DeSonia, MHPCC
    66 *
    7  * @version $Revision: 1.20 $ $Name: not supported by cvs2svn $
    8  * @date $Date: 2007-04-05 03:02:21 $
     7 * @version $Revision: 1.21 $ $Name: not supported by cvs2svn $
     8 * @date $Date: 2007-07-20 20:12:31 $
    99 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
    1010 */
     
    112112///
    113113psImage *psImageConvolveDirect(
     114    psImage *out,                       ///< return output to here
    114115    const psImage *in,                  ///< the psImage to convolve
    115116    const psKernel *kernel              ///< kernel to colvolve with
  • trunk/psLib/test/imageops/convolutionBench.c

    r12180 r14332  
    3535            psKernel *kernel = generateKernel(kernelCols, kernelRows);
    3636            psTimerStart("direct");
    37             psImage *convolved = psImageConvolveDirect(image, kernel);
     37            psImage *convolved = psImageConvolveDirect(NULL, image, kernel);
    3838            direct += psTimerMark("direct");
    3939            psFree(convolved);
  • trunk/psLib/test/imageops/tap_psImageConvolve2.c

    r12179 r14332  
    7171        psKernel *kernel = generateKernel();
    7272
    73         psImage *convolved = psImageConvolveDirect(image, kernel);
     73        psImage *convolved = psImageConvolveDirect(NULL, image, kernel);
    7474        ok(convolved, "convolution result");
    7575        skip_start(!convolved, 3, "convolution failed");
  • trunk/psModules/src/detrend/pmShifts.c

    r12696 r14332  
    441441#if 1
    442442        // Always do direct convolution (no fuss with edge effects)
    443         psImage *convolved = psImageConvolveDirect(detrend->image, kernel);
     443        psImage *convolved = psImageConvolveDirect(NULL, detrend->image, kernel);
    444444#else
    445445        // Kernel size-dependent convolution --- if it's big, use the FFT
     
    448448        psImage *convolved;
    449449        if (xSize * ySize < FFT_SIZE * FFT_SIZE) {
    450             convolved = psImageConvolveDirect(detrend->image, kernel);
     450            convolved = psImageConvolveDirect(NULL, detrend->image, kernel);
    451451        } else {
    452452            // This is a little dodgy --- making choices about parameters without the user's input
Note: See TracChangeset for help on using the changeset viewer.