Changeset 2911 for trunk/psLib/src/image
- Timestamp:
- Jan 5, 2005, 11:16:15 AM (22 years ago)
- Location:
- trunk/psLib/src/image
- Files:
-
- 2 edited
-
psImageConvolve.c (modified) (6 diffs)
-
psImageIO.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/image/psImageConvolve.c
r2411 r2911 5 5 * @author Robert DeSonia, MHPCC 6 6 * 7 * @version $Revision: 1.1 0$ $Name: not supported by cvs2svn $8 * @date $Date: 200 4-11-24 00:05:54 $7 * @version $Revision: 1.11 $ $Name: not supported by cvs2svn $ 8 * @date $Date: 2005-01-05 21:16:14 $ 9 9 * 10 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii10 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii 11 11 */ 12 12 … … 130 130 } 131 131 132 // determine the usable length of the shift vector132 // sizes match? 133 133 length = xShifts->n; 134 134 if (length != yShifts->n || 135 135 length != tShifts->n) { 136 psLogMsg(__func__,PS_LOG_WARN,"Shift vectors found to be different sizes."); 137 if (yShifts->n < length) { 138 length = yShifts->n; 139 } 140 if (tShifts->n < length) { 141 length = tShifts->n; 142 } 136 psError(PS_ERR_BAD_PARAMETER_SIZE, true, 137 "Shift vectors can not be of different sizes."); 138 return NULL; 139 } 140 141 // if no shifts, the kernel is just a 1 at 0,0 142 if (length < 1) { 143 result = psKernelAlloc(0,0,0,0); 144 result->kernel[0][0] = 1; 145 return result; 143 146 } 144 147 … … 148 151 ps##TYPE *xShiftData = xShifts->data.TYPE; \ 149 152 ps##TYPE *yShiftData = yShifts->data.TYPE; \ 150 lastX = xShiftData[length-1]; \ 151 lastY = yShiftData[length-1]; \ 153 lastX = xShiftData[length-1]; \ 154 lastY = yShiftData[length-1]; \ 155 lastT = tShiftData[length-1]; \ 152 156 \ 153 157 for (int lcv = 0; lcv < length; lcv++) { \ … … 167 171 } \ 168 172 \ 169 normalizeTime = 1.0 / (psKernelType)( lastT - tShiftData[0]); \173 normalizeTime = 1.0 / (psKernelType)(tShiftData[length-1]); \ 170 174 result = psKernelAlloc(xMin,xMax,yMin,yMax); \ 171 175 kernel = result->kernel; \ 172 176 \ 173 lastT = 0; \177 psS32 prevT = 0; \ 174 178 for (int i = 0; i < length; i++) { \ 175 t = tShiftData[i] - lastT; \179 t = tShiftData[i] - prevT; \ 176 180 x = lastX - xShiftData[i]; \ 177 181 y = lastY - yShiftData[i]; \ 178 182 \ 179 kernel[y][x] += (psKernelType)t * normalizeTime; \180 lastT = t; \183 kernel[y][x] += (psKernelType)t / (psKernelType)lastT; \ 184 prevT = tShiftData[i]; \ 181 185 } \ 182 186 break; \ … … 206 210 yMax = y; \ 207 211 } \ 208 x += xShiftData[lcv]; \209 y += yShiftData[lcv]; \212 x -= xShiftData[lcv]; \ 213 y -= yShiftData[lcv]; \ 210 214 \ 211 215 } \ … … 218 222 for (psS32 i = length-1; i >= 0; i--) { \ 219 223 kernel[y][x] += (psKernelType)(tShiftData[i]) * normalizeTime; \ 220 x += xShiftData[i]; \221 y += yShiftData[i]; \224 x -= xShiftData[i]; \ 225 y -= yShiftData[i]; \ 222 226 \ 223 227 } \ -
trunk/psLib/src/image/psImageIO.c
r2273 r2911 7 7 * @author Robert DeSonia, MHPCC 8 8 * 9 * @version $Revision: 1.1 5$ $Name: not supported by cvs2svn $10 * @date $Date: 200 4-11-04 01:05:00$9 * @version $Revision: 1.16 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2005-01-05 21:16:14 $ 11 11 * 12 12 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 33 33 { 34 34 fitsfile *fptr = NULL; /* Pointer to the FITS file */ 35 psS32 status = 0; /* CFITSIO file vars */35 psS32 status = 0; /* CFITSIO file vars */ 36 36 psS32 nAxis = 0; 37 37 psS32 anynull = 0; 38 psS32 bitPix = 0; /* Pixel type */38 psS32 bitPix = 0; /* Pixel type */ 39 39 long nAxes[3]; 40 40 long firstPixel[3]; /* lower-left corner of image subset */ … … 160 160 fitsDatatype = TBYTE; 161 161 break; 162 /* case SBYTE_IMG: Not a requirement163 datatype = PS_TYPE_S8;164 fitsDatatype = TSBYTE;165 break; */166 /* case USHORT_IMG: Not a requirement167 datatype = PS_TYPE_U16;168 fitsDatatype = TUSHORT;169 break; */162 case SBYTE_IMG: 163 datatype = PS_TYPE_S8; 164 fitsDatatype = TSBYTE; 165 break; 166 case USHORT_IMG: 167 datatype = PS_TYPE_U16; 168 fitsDatatype = TUSHORT; 169 break; 170 170 case SHORT_IMG: 171 171 datatype = PS_TYPE_S16; 172 172 fitsDatatype = TSHORT; 173 173 break; 174 /* case ULONG_IMG: Not a requirement175 datatype = PS_TYPE_U32;176 fitsDatatype = TUINT;177 break; */174 case ULONG_IMG: 175 datatype = PS_TYPE_U32; 176 fitsDatatype = TUINT; 177 break; 178 178 case LONG_IMG: 179 179 datatype = PS_TYPE_S32; 180 180 fitsDatatype = TINT; 181 181 break; 182 /* case LONGLONG_IMG: Not a requirement183 datatype = PS_TYPE_S64;184 fitsDatatype = TLONGLONG;185 break; */182 case LONGLONG_IMG: 183 datatype = PS_TYPE_S64; 184 fitsDatatype = TLONGLONG; 185 break; 186 186 case FLOAT_IMG: 187 187 datatype = PS_TYPE_F32; … … 256 256 datatype = TBYTE; 257 257 break; 258 /* case PS_TYPE_S8: Not a requirement259 bitPix = BYTE_IMG;260 bzero = INT8_MIN;261 datatype = TSBYTE;262 break; */263 /* case PS_TYPE_U16: Not a requirement264 bitPix = SHORT_IMG;265 bzero = -1.0f * INT16_MIN;266 datatype = TUSHORT;267 break; */258 case PS_TYPE_S8: 259 bitPix = BYTE_IMG; 260 bzero = INT8_MIN; 261 datatype = TSBYTE; 262 break; 263 case PS_TYPE_U16: 264 bitPix = SHORT_IMG; 265 bzero = -1.0f * INT16_MIN; 266 datatype = TUSHORT; 267 break; 268 268 case PS_TYPE_S16: 269 269 bitPix = SHORT_IMG; 270 270 datatype = TSHORT; 271 271 break; 272 /* case PS_TYPE_U32: Not a requirement273 bitPix = LONG_IMG;274 bzero = -1.0f * INT32_MIN;275 datatype = TUINT;276 break; */272 case PS_TYPE_U32: 273 bitPix = LONG_IMG; 274 bzero = -1.0f * INT32_MIN; 275 datatype = TUINT; 276 break; 277 277 case PS_TYPE_S32: 278 278 bitPix = LONG_IMG; … … 344 344 } 345 345 346 } else { // file 347 // does 348 // not 349 // exist 346 } else { 347 // file does not exist 350 348 351 349 (void)fits_create_file(&fptr, filename, &status);
Note:
See TracChangeset
for help on using the changeset viewer.
