Changeset 1940 for trunk/psLib/src/image/psImageConvolve.c
- Timestamp:
- Oct 1, 2004, 10:58:32 AM (22 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/image/psImageConvolve.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/image/psImageConvolve.c
r1936 r1940 5 5 * @author Robert DeSonia, MHPCC 6 6 * 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 $ 9 9 * 10 10 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 64 64 result->yMax = yMax; 65 65 result->image = psImageAlloc(numCols,numRows,PS_TYPE_KERNEL); 66 memset(result->image->rawDataBuffer,0,numCols*numRows*PSELEMTYPE_SIZEOF(PS_TYPE_KERNEL)); 66 67 result->p_kernelRows = psAlloc(sizeof(psKernelType*)*numRows); 67 68 … … 94 95 int y = 0; 95 96 int t = 0; 96 int deltaT = 0; 97 int deltaT; 98 int oldX; 99 int oldY; 97 100 int xMin = 0; 98 101 int xMax = 0; … … 105 108 106 109 // got non-NULL vectors? 107 if ( xShifts == NULL || yShifts == NULL) {110 if (tShifts == NULL || xShifts == NULL || yShifts == NULL) { 108 111 psErrorMsg(PS_ERRORNAME_DOMAIN "psKernelGenerate", 109 112 PS_ERR_BAD_PARAMETER_NULL, true, … … 146 149 ps##TYPE *xShiftData = xShifts->data.TYPE; \ 147 150 ps##TYPE *yShiftData = yShifts->data.TYPE; \ 151 x = 0; \ 152 y = 0; \ 153 t = 0; \ 148 154 for (int lcv = 0; lcv < length; lcv++) { \ 149 155 if (relative) { \ 150 156 x += xShiftData[lcv]; \ 151 157 y += yShiftData[lcv]; \ 158 t += tShiftData[lcv]; \ 152 159 } else { \ 153 160 x = xShiftData[lcv]; \ 154 161 y = yShiftData[lcv]; \ 162 t = tShiftData[lcv]; \ 155 163 } \ 156 164 if (x < xMin) { \ … … 168 176 kernel = result->kernel; \ 169 177 \ 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++) { \ 175 183 deltaT = t; \ 184 oldX = x; \ 185 oldY = y; \ 176 186 if (relative) { \ 177 187 t += tShiftData[i]; \ … … 185 195 deltaT = t - deltaT; \ 186 196 \ 187 kernel[ y][x] += deltaT * normalizeTime; \197 kernel[oldY][oldX] += deltaT * normalizeTime; \ 188 198 } \ 199 break; \ 189 200 } 190 201
Note:
See TracChangeset
for help on using the changeset viewer.
