IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Oct 1, 2004, 10:58:32 AM (22 years ago)
Author:
desonia
Message:

changes related to addition of test for psKernelGenerate.

File:
1 edited

Legend:

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

    r1936 r1940  
    55 *  @author Robert DeSonia, MHPCC
    66 *
    7  *  @version $Revision: 1.4 $ $Name: not supported by cvs2svn $
    8  *  @date $Date: 2004-09-30 21:01:09 $
     7 *  @version $Revision: 1.5 $ $Name: not supported by cvs2svn $
     8 *  @date $Date: 2004-10-01 20:58:32 $
    99 *
    1010 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    6464    result->yMax = yMax;
    6565    result->image = psImageAlloc(numCols,numRows,PS_TYPE_KERNEL);
     66    memset(result->image->rawDataBuffer,0,numCols*numRows*PSELEMTYPE_SIZEOF(PS_TYPE_KERNEL));
    6667    result->p_kernelRows = psAlloc(sizeof(psKernelType*)*numRows);
    6768
     
    9495    int y = 0;
    9596    int t = 0;
    96     int deltaT = 0;
     97    int deltaT;
     98    int oldX;
     99    int oldY;
    97100    int xMin = 0;
    98101    int xMax = 0;
     
    105108
    106109    // got non-NULL vectors?
    107     if (xShifts == NULL || yShifts == NULL) {
     110    if (tShifts == NULL || xShifts == NULL || yShifts == NULL) {
    108111        psErrorMsg(PS_ERRORNAME_DOMAIN "psKernelGenerate",
    109112                   PS_ERR_BAD_PARAMETER_NULL, true,
     
    146149        ps##TYPE *xShiftData = xShifts->data.TYPE; \
    147150        ps##TYPE *yShiftData = yShifts->data.TYPE; \
     151        x = 0; \
     152        y = 0; \
     153        t = 0; \
    148154        for (int lcv = 0; lcv < length; lcv++) { \
    149155            if (relative) { \
    150156                x += xShiftData[lcv]; \
    151157                y += yShiftData[lcv]; \
     158                t += tShiftData[lcv]; \
    152159            } else { \
    153160                x = xShiftData[lcv]; \
    154161                y = yShiftData[lcv]; \
     162                t = tShiftData[lcv]; \
    155163            } \
    156164            if (x < xMin) { \
     
    168176        kernel = result->kernel; \
    169177        \
    170         x = xShiftData[0]; \
    171         y = yShiftData[0]; \
    172         t = tShiftData[0]; \
    173         normalizeTime = 1.0 / (psKernelType)(tShiftData[length-1]-t); \
    174         for (int i = 1; i < length; i++) { \
     178        normalizeTime = 1.0 / (psKernelType)(t); \
     179        x = 0; \
     180        y = 0; \
     181        t = 0; \
     182        for (int i = 0; i < length; i++) { \
    175183            deltaT = t; \
     184            oldX = x; \
     185            oldY = y; \
    176186            if (relative) { \
    177187                t += tShiftData[i]; \
     
    185195            deltaT = t - deltaT; \
    186196            \
    187             kernel[y][x] += deltaT * normalizeTime; \
     197            kernel[oldY][oldX] += deltaT * normalizeTime; \
    188198        } \
     199        break; \
    189200    }
    190201
Note: See TracChangeset for help on using the changeset viewer.