Changeset 2777 for trunk/psModules/src/pmSubtractBias.c
- Timestamp:
- Dec 21, 2004, 10:41:29 AM (22 years ago)
- File:
-
- 1 edited
-
trunk/psModules/src/pmSubtractBias.c (modified) (16 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/pmSubtractBias.c
r2481 r2777 6 6 * @author George Gusciora, MHPCC 7 7 * 8 * @version $Revision: 1.1 8$ $Name: not supported by cvs2svn $9 * @date $Date: 2004-1 1-25 02:54:45$8 * @version $Revision: 1.19 $ $Name: not supported by cvs2svn $ 9 * @date $Date: 2004-12-21 20:41:29 $ 10 10 * 11 11 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 33 33 34 34 if (bias == NULL) { 35 printf("WARNING: bias frame is NULL\n"); 35 psLogMsg(__func__, PS_LOG_WARN, 36 "WARNING: pmSubtractBias.c: psSubtractFrame(): bias frame is NULL. Returning original image.\n"); 36 37 return(in); 37 38 } … … 133 134 } 134 135 if (numOptions != 1) { 135 printf("WARNING: Too many statistics options have been specified\n"); 136 psLogMsg(__func__, PS_LOG_WARN, 137 "WARNING: pmSubtractBias.c: GenNewStatOptions(): Too many statistics options have been specified\n"); 136 138 } 137 139 return(opt); … … 153 155 pmFit fit) 154 156 { 155 printf("ScaleOverscanVector(%d)\n", n); 157 psTrace(".psModule.pmSubtracBias.ScaleOverscanVector", 4, 158 "---- ScaleOverscanVector() begin ----\n"); 159 156 160 if (NULL == overscanVector) { 157 161 return(overscanVector); … … 189 193 } 190 194 } else { 191 psError(PS_ERR_UNKNOWN,true, "unknown fit type\n"); 192 } 193 195 psError(PS_ERR_UNKNOWN, true, "unknown fit type\n"); 196 } 197 198 psTrace(".psModule.pmSubtracBias.ScaleOverscanVector", 4, 199 "---- ScaleOverscanVector() exit ----\n"); 194 200 return(newVec); 195 201 } … … 204 210 const psReadout *bias) 205 211 { 212 psTrace(".psModule.pmSubtracBias.pmSubtractBias", 4, 213 "---- ScaleOverscanVector() begin ----\n"); 214 PS_READOUT_CHECK_NULL(in, NULL); 215 PS_READOUT_CHECK_EMPTY(in, NULL); 216 PS_READOUT_CHECK_TYPE(in, PS_TYPE_F32, NULL); 217 if ((overscans == NULL) && (overScanAxis != PM_OVERSCAN_NONE)) { 218 psError(PS_ERR_UNKNOWN,true, "(overscans == NULL) && (overScanAxis != PM_OVERSCAN_NONE)\n"); 219 return(in); 220 } 206 221 int i; 207 222 int j; … … 218 233 psSpline1D *mySpline; 219 234 int nBin; 220 221 PS_PTR_CHECK_NULL(in,NULL);222 223 235 // 224 236 // Determine if multiple options are specified in stat. … … 228 240 } 229 241 230 if ((overscans == NULL) && (overScanAxis != PM_OVERSCAN_NONE)) { 231 psError(PS_ERR_UNKNOWN,true, "(overscans == NULL) && (overScanAxis != PM_OVERSCAN_NONE)\n"); 232 return(in); 242 if (overScanAxis == PM_OVERSCAN_NONE) { 243 if (overscans != NULL) { 244 psLogMsg(__func__, PS_LOG_WARN, 245 "WARNING: pmSubtractBias.(): overScanAxis equals NONE and overscans does not equal NULL\n"); 246 } 247 return(psSubtractFrame(in, bias)); 233 248 } 234 249 … … 236 251 (overScanAxis == PM_OVERSCAN_ALL)) && 237 252 (fit == PM_FIT_NONE)) { 238 printf("WARNING: overScanAxis equals NONE or ALL, and fit equals NONE\n"); 239 //XXX: Then what? 240 } 241 242 if (overScanAxis == PM_OVERSCAN_NONE) { 243 if (overscans != NULL) { 244 printf("WARNING: overScanAxis equals NONE and overscans does not equal NULL\n"); 245 } 246 return(psSubtractFrame(in, bias)); 247 } 253 psLogMsg(__func__, PS_LOG_WARN, 254 "WARNING: pmSubtractBias.(): overScanAxis equals NONE or ALL, and fit equals NONE\n"); 255 } 256 248 257 249 258 // 250 259 // We subtract each overscan region from the image data. 251 260 // 261 // XXX: Do we generate a single stat from all the overscan regions, and 262 // subtract that from the input image? Or do we generate a single stat 263 // from each overscan region, and subtract them from the input image? 264 // The SDR is ambiguous. 252 265 if (overScanAxis == PM_OVERSCAN_ALL) { 253 266 tmpOverscan = (psListElem *) overscans->head; … … 286 299 tmpRow->data.F32[j] = myOverscanImage->data.F32[j][i]; 287 300 } 288 stat = psVectorStats(stat, tmpRow, NULL, 0);301 stat = psVectorStats(stat, tmpRow, NULL, NULL, 0); 289 302 p_psGetStatValue(stat, &statValue); 290 303 overscanVector->data.F32[i] = statValue; … … 292 305 psFree(tmpRow); 293 306 if ((fit == PM_FIT_POLYNOMIAL) || (fit == PM_FIT_SPLINE)) { 294 psVector *newVec = ScaleOverscanVector(overscanVector, (in->image)->numCols, fitSpec, fit); 307 psVector *newVec = ScaleOverscanVector(overscanVector, 308 (in->image)->numCols, fitSpec, fit); 295 309 psFree(overscanVector); 296 310 overscanVector = newVec; … … 310 324 tmpCol->data.F32[j] = myOverscanImage->data.F32[i][j]; 311 325 } 312 stat = psVectorStats(stat, tmpCol, NULL, 0);326 stat = psVectorStats(stat, tmpCol, NULL, NULL, 0); 313 327 p_psGetStatValue(stat, &statValue); 314 328 overscanVector->data.F32[i] = statValue; … … 317 331 psFree(tmpCol); 318 332 if ((fit == PM_FIT_POLYNOMIAL) || (fit == PM_FIT_SPLINE)) { 319 psVector *newVec = ScaleOverscanVector(overscanVector, (in->image)->numRows, fitSpec, fit); 333 psVector *newVec = ScaleOverscanVector(overscanVector, 334 (in->image)->numRows, fitSpec, fit); 320 335 psFree(overscanVector); 321 336 overscanVector = newVec; … … 342 357 } 343 358 } 344 stat = psVectorStats(stat, binVec, NULL, 0);359 stat = psVectorStats(stat, binVec, NULL, NULL, 0); 345 360 p_psGetStatValue(stat, &statValue); 346 361 myBin->data.F32[i] = statValue; … … 372 387 } else if (fit == PM_FIT_SPLINE) { 373 388 mySpline = (psSpline1D *) fitSpec; 374 // XXX: The spline functions do not currentlywork if the number of389 // XXX: The spline functions do not work if the number of 375 390 // data points and the number of splines are not equal. 376 391 } … … 404 419 405 420 421 psTrace(".psModule.pmSubtracBias.pmSubtractBias", 4, 422 "---- ScaleOverscanVector() exit ----\n"); 423 406 424 if (bias != NULL) { 407 425 return(psSubtractFrame(in, bias));
Note:
See TracChangeset
for help on using the changeset viewer.
