Changeset 4425
- Timestamp:
- Jun 28, 2005, 3:39:10 PM (21 years ago)
- Location:
- trunk/psModules/src
- Files:
-
- 3 edited
-
pmImageCombine.c (modified) (11 diffs)
-
pmReadoutCombine.c (modified) (4 diffs)
-
pmSubtractSky.c (modified) (19 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/pmImageCombine.c
r4290 r4425 8 8 * @author GLG, MHPCC 9 9 * 10 * @version $Revision: 1. 9$ $Name: not supported by cvs2svn $11 * @date $Date: 2005-06- 16 23:11:41$10 * @version $Revision: 1.10 $ $Name: not supported by cvs2svn $ 11 * @date $Date: 2005-06-29 01:39:10 $ 12 12 * 13 13 * XXX: pmRejectPixels() has a known bug with the pmImageTransform() call. … … 47 47 ) 48 48 { 49 49 50 PS_ASSERT_PTR_NON_NULL(images, combine); 50 51 psU32 numImages = images->n; 52 psTrace("ImageCombine.pmCombineImages", 3, "Calling pmCombineImages(%d)\n", images->n); 51 53 52 54 if (errors != NULL) { … … 299 301 psFree(qpPtr); 300 302 303 psTrace("ImageCombine.pmCombineImages", 3, "Exiting pmCombineImages(%d)\n", images->n); 301 304 return(combine); 302 305 } … … 311 314 psS32 y) 312 315 { 316 psTrace("ImageCombine.CalcGradient", 4, "Calling CalcGradient(%d, %d)\n", x, y); 313 317 int num = 0; 314 318 psVector *pixels = psVectorAlloc(8, PS_TYPE_F32); // Array of pixels … … 339 343 psFree(pixels); 340 344 psFree(mask); 341 return median / image->data.F32[y][x]; 345 346 psTrace("ImageCombine.CalcGradient", 4, "Exiting CalcGradient(%d, %d)\n", x, y); 347 return(median / image->data.F32[y][x]); 342 348 } 343 349 … … 355 361 psPlaneTransform *myOutToIn) 356 362 { 363 psTrace("ImageCombine.DetermineRegion", 4, "Calling DetermineRegion()\n"); 357 364 psRegion myRegion; 358 365 myRegion.x0 = PS_MAX_F32; … … 429 436 } 430 437 438 psTrace("ImageCombine.DetermineRegion", 4, "Exiting DetermineRegion()\n"); 431 439 return(myRegion); 432 440 } … … 437 445 static psImage *ImageConvertF32(psImage *image) 438 446 { 447 psTrace("ImageCombine.ImageConvertF32", 4, "Calling ImageConvertF32()\n"); 439 448 psImage *imgF32 = psImageAlloc(image->numCols, image->numRows, PS_TYPE_F32); 440 449 … … 445 454 } 446 455 456 psTrace("ImageCombine.ImageConvertF32", 4, "Exiting ImageConvertF32()\n"); 447 457 return(imgF32); 448 458 } … … 472 482 ) 473 483 { 484 psTrace("ImageCombine.pmRejectPixels", 3, "Calling pmRejectPixels()\n"); 474 485 PS_ASSERT_PTR_NON_NULL(images, NULL); 475 486 PS_ASSERT_PTR_NON_NULL(errors, NULL); … … 609 620 psFree(inCoords); 610 621 psFree(outCoords); 622 psTrace("ImageCombine.pmRejectPixels", 3, "Exiting pmRejectPixels()\n"); 611 623 return(rejects); 612 624 } -
trunk/psModules/src/pmReadoutCombine.c
r4168 r4425 5 5 * @author GLG, MHPCC 6 6 * 7 * @version $Revision: 1.2 3$ $Name: not supported by cvs2svn $8 * @date $Date: 2005-06- 09 00:59:54$7 * @version $Revision: 1.24 $ $Name: not supported by cvs2svn $ 8 * @date $Date: 2005-06-29 01:39:10 $ 9 9 * 10 10 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 18 18 19 19 /****************************************************************************** 20 p_psDetermineNumBits(data): This routine takes an enum psStatsOptions as an20 DetermineNumBits(data): This routine takes an enum psStatsOptions as an 21 21 argument and returns the number of non-zero bits. 22 22 *****************************************************************************/ 23 psStatsOptionsDetermineNumBits(psStatsOptions data)23 static psS32 DetermineNumBits(psStatsOptions data) 24 24 { 25 25 psS32 i; … … 27 27 psS32 numBits = 0; 28 28 29 for (i=0;i< 8 * sizeof(psStatsOptions);i++) {29 for (i=0;i<(8 * sizeof(psStatsOptions));i++) { 30 30 if (0x0001 & tmpData) { 31 31 numBits++; … … 37 37 38 38 /****************************************************************************** 39 p_psDetermineNumBits(data): This routine takes an enum psStatsOptions as an40 argument and returns the number of non-zero bits.41 42 39 XXX: Must add support for S16 and S32 types. F32 currently supported. 43 40 *****************************************************************************/ -
trunk/psModules/src/pmSubtractSky.c
r4030 r4425 6 6 * @author GLG, MHPCC 7 7 * 8 * @version $Revision: 1.2 0$ $Name: not supported by cvs2svn $9 * @date $Date: 2005-0 5-25 20:28:32$8 * @version $Revision: 1.21 $ $Name: not supported by cvs2svn $ 9 * @date $Date: 2005-06-29 01:39:10 $ 10 10 * 11 11 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii 12 xd * 12 * 13 * 14 * 13 15 */ 14 16 … … 20 22 21 23 /****************************************************************************** 22 p_psDetermineNumBits(data): This routine takes an enum psStatsOptions as an24 DetermineNumBits(data): This routine takes an enum psStatsOptions as an 23 25 argument and returns the number of non-zero bits. 26 27 XXX: This code is duplicated in the ReadoutCombine file. 24 28 *****************************************************************************/ 25 psStatsOptions p_psDetermineNumBits(psStatsOptions data)29 static psS32 DetermineNumBits(psStatsOptions data) 26 30 { 31 psTrace("SubtractSky.DetermineNumBits", 4, "Calling DetermineNumBits(0x%x)\n", data); 32 27 33 psS32 i; 28 34 psU64 tmpData = data; 29 35 psS32 numBits = 0; 30 36 31 for (i=0;i< 8 * sizeof(psStatsOptions);i++) {37 for (i=0;i<(8 * sizeof(psStatsOptions));i++) { 32 38 if (0x0001 & tmpData) { 33 39 numBits++; … … 35 41 tmpData = tmpData >> 1; 36 42 } 43 44 psTrace("SubtractSky.DetermineNumBits", 4, 45 "Calling DetermineNumBits(0x%x) -> %d\n", data, numBits); 37 46 return(numBits); 38 47 } … … 43 52 option set according to the precedence set in the SDRS. 44 53 *****************************************************************************/ 45 psU64 getHighestPriorityStatOption(psU64 statOptions)54 static psU64 getHighestPriorityStatOption(psU64 statOptions) 46 55 { 56 psTrace("SubtractSky.getHighestPriorityStatOption", 4, 57 "Calling getHighestPriorityStatOption(0x%x)\n", statOptions); 58 47 59 if (statOptions & PS_STAT_SAMPLE_MEAN) { 48 60 return(PS_STAT_SAMPLE_MEAN); … … 72 84 requirements change and we might need a custom reBin function. 73 85 *****************************************************************************/ 74 psImage *binImage(psImage *origImage, 75 int binFactor, 76 psStatsOptions statOptions) 86 /* 87 static psImage *binImage(psImage *origImage, 88 int binFactor, 89 psStatsOptions statOptions) 77 90 { 91 psTrace("SubtractSky.binImage", 4, "Calling binImage(%d)\n", binFactor); 92 78 93 if (binFactor <= 0) { 79 94 psLogMsg(__func__, PS_LOG_WARN, … … 84 99 return(origImage); 85 100 } 86 101 87 102 psVector *binVector = psVectorAlloc(binFactor * binFactor, PS_TYPE_F32); 88 103 psVector *binMask = psVectorAlloc(binFactor * binFactor, PS_TYPE_U8); 89 104 psStats *myStats = psStatsAlloc(statOptions); 90 105 91 106 for (psS32 row = 0; row < origImage->numRows ; row+=binFactor) { 92 107 for (psS32 col = 0; col < origImage->numCols ; col+=binFactor) { … … 113 128 psF64 statValue; 114 129 psBool rc = p_psGetStatValue(rc1, &statValue); 115 130 116 131 if (rc == true) { 117 132 origImage->data.F32[row][col] = (psF32) statValue; … … 126 141 psFree(binMask); 127 142 psFree(myStats); 128 143 144 psTrace("SubtractSky.binImage", 4, "Exiting binImage(%d)\n", binFactor); 129 145 return(origImage); 130 146 } 147 */ 131 148 132 149 /****************************************************************************** 133 150 CalculatePolyTerms(xOrder, yOrder): this routine will calculate the number of 134 151 coefficients (or terms) in a 2-D polynomial of order (xOrder, yOrder). 152 153 XXX: Use your brain and figure out the analytical expression. 135 154 *****************************************************************************/ 136 psS32 CalculatePolyTerms(psS32 xOrder, psS32 yOrder)155 static psS32 CalculatePolyTerms(psS32 xOrder, psS32 yOrder) 137 156 { 157 psTrace("SubtractSky.CalculatePolyTerms", 4, 158 "Calling CalculatePolyTerms(%d, %d)\n", xOrder, yOrder); 159 138 160 psS32 maxOrder = PS_MAX(xOrder, yOrder); 139 161 psS32 localPolyTerms = 0; … … 148 170 } 149 171 } 172 173 psTrace("SubtractSky.CalculatePolyTerms", 4, 174 "Exiting CalculatePolyTerms(%d, %d) -> %d\n", xOrder, yOrder, localPolyTerms); 150 175 return(localPolyTerms); 151 176 } … … 162 187 poly-order sky background polynomial. 163 188 *****************************************************************************/ 164 psS32 **buildPolyTerms(psS32 xOrder, psS32 yOrder)189 static psS32 **buildPolyTerms(psS32 xOrder, psS32 yOrder) 165 190 { 191 psTrace("SubtractSky.buildPolyTerms", 4, 192 "Calling buildPolyTerms(%d, %d)\n", xOrder, yOrder); 193 166 194 psS32 i=0; 167 195 psS32 order = 0; … … 196 224 } 197 225 226 psTrace("SubtractSky.buildPolyTerms", 4, 227 "Exiting buildPolyTerms(%d, %d)\n", xOrder, yOrder); 198 228 return(polyTerms); 199 229 } … … 206 236 207 237 XXX: Use a psImage for the p_psPolySums data structure? 238 XXX: p_psPolySums: should this be a global? Did you get the storage classifier 239 and name correct? 208 240 XXX: Use variable size arrays for p_psPolySums[][]. 209 241 XXX: Must initialize p_psPolySums[][]? 210 242 *****************************************************************************/ 211 243 #define PS_MAX_POLYNOMIAL_ORDER 20 244 212 245 psF64 p_psPolySums[PS_MAX_POLYNOMIAL_ORDER+1][PS_MAX_POLYNOMIAL_ORDER+1]; 213 void buildSums(psF64 x,214 psF64 y,215 psS32 xOrder,216 psS32 yOrder)246 static void buildSums(psF64 x, 247 psF64 y, 248 psS32 xOrder, 249 psS32 yOrder) 217 250 { 251 psTrace("SubtractSky.buildPolyTerms", 4, 252 "Calling buildPolyTerms(%d, %d)\n", xOrder, yOrder); 253 218 254 psS32 i = 0; 219 255 psS32 j = 0; … … 231 267 xSum*= x; 232 268 } 269 psTrace("SubtractSky.buildPolyTerms", 4, 270 "Exiting buildPolyTerms(%d, %d)\n", xOrder, yOrder); 233 271 } 234 272 … … 242 280 used in this routine is based on that of the pilot project ADD, but is not 243 281 documented anywhere. 282 283 XXX: Different trace message facilities in use here. 244 284 *****************************************************************************/ 245 psPolynomial2D *ImageFitPolynomial(psPolynomial2D *myPoly,246 psImage *dataImage,247 psImage *maskImage)285 static psPolynomial2D *ImageFitPolynomial(psPolynomial2D *myPoly, 286 psImage *dataImage, 287 psImage *maskImage) 248 288 { 249 psTrace(" .psModule.pmSubtractSky.ImageFitPolynomial", 4,250 " ---- ImageFitPolynomial() begin ----\n");289 psTrace("SubtractSky.ImageFitPolynomial", 4, 290 "Calling ImageFitPolynomial()\n"); 251 291 PS_ASSERT_POLY_NON_NULL(myPoly, NULL); 252 292 PS_ASSERT_POLY_TYPE(myPoly, PS_POLYNOMIAL_ORD, NULL); … … 404 444 } 405 445 406 psTrace(".psModule.pmSubtractSky.ImageFitPolynomial", 4, 407 "---- ImageFitPolynomial() end successfully ----\n"); 446 psTrace("SubtractSky.ImageFitPolynomial", 4, 447 "Exiting ImageFitPolynomial()\n"); 448 // psTrace(".psModule.pmSubtractSky.ImageFitPolynomial", 4, 449 // "---- ImageFitPolynomial() end successfully ----\n"); 408 450 return(myPoly); 409 451 } … … 416 458 417 459 XXX: The SDR is silent about types. PS_TYPE_F32 is implemented here. 460 461 XXX: Sync the psTrace message facilities. 418 462 *****************************************************************************/ 419 463 psReadout *pmSubtractSky(psReadout *in, … … 459 503 if (stats != NULL) { 460 504 statOptions = stats->options; 461 if (1 < p_psDetermineNumBits(statOptions)) {505 if (1 < DetermineNumBits(statOptions)) { 462 506 psLogMsg(__func__, PS_LOG_WARN, "WARNING: Multiple statistical options have been requested.\n"); 463 507 statOptions = getHighestPriorityStatOption(statOptions); … … 470 514 stats->options = statOptions; 471 515 } 472 if (0 == p_psDetermineNumBits(statOptions)) {516 if (0 == DetermineNumBits(statOptions)) { 473 517 psLogMsg(__func__, PS_LOG_WARN, 474 518 "WARNING: pmSubtractSky(): no stats->options was requested\n"); … … 492 536 // Create a new binned image mask. 493 537 // 494 if ((binFactor <= 1) || (stats == NULL) || (0 == p_psDetermineNumBits(statOptions))) {538 if ((binFactor <= 1) || (stats == NULL) || (0 == DetermineNumBits(statOptions))) { 495 539 // No binning is required here. Simply create a copy of the image 496 540 // and a mask.
Note:
See TracChangeset
for help on using the changeset viewer.
