00001 /** @file pmSubtractBias.h 00002 * 00003 * This file will contain a module which will subtract the detector bias 00004 * in place from an input image. 00005 * 00006 * @author GLG, MHPCC 00007 * 00008 * @version $Revision: 1.4 $ $Name: rel9_1 $ 00009 * @date $Date: 2005/11/23 23:54:30 $ 00010 * 00011 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii 00012 * 00013 */ 00014 00015 #if !defined(PM_SUBTRACT_BIAS_H) 00016 #define PM_SUBTRACT_BIAS_H 00017 00018 #if HAVE_CONFIG_H 00019 #include <config.h> 00020 #endif 00021 00022 #include<stdio.h> 00023 #include<math.h> 00024 #include "pslib.h" 00025 #include "pmAstrometry.h" 00026 00027 typedef enum { 00028 PM_OVERSCAN_NONE, ///< No overscan subtraction 00029 PM_OVERSCAN_ROWS, ///< Subtract rows 00030 PM_OVERSCAN_COLUMNS, ///< Subtract columns 00031 PM_OVERSCAN_ALL ///< Subtract the statistic of all pixels in overscan region 00032 } pmOverscanAxis; 00033 00034 typedef enum { 00035 PM_FIT_NONE, ///< No fit 00036 PM_FIT_POLYNOMIAL, ///< Fit polynomial 00037 PM_FIT_SPLINE ///< Fit cubic splines 00038 } pmFit; 00039 00040 pmReadout *pmSubtractBias( 00041 pmReadout *in, ///< The input pmReadout image 00042 void *fitSpec, ///< A polynomial or spline, defining the fit type. 00043 pmFit fit, ///< PM_FIT_SPLINE, PM_FIT_POLYNOMIAL, or PM_FIT_NONE 00044 bool overscan, 00045 psStats *stat, ///< The statistic to be used in combining overscan data 00046 int nBin, ///< The amount of binning to be done image pixels. 00047 const pmReadout *bias, ///< A possibly NULL bias pmReadout which is to be subtracted 00048 const pmReadout *dark ///< A possibly NULL bias pmReadout which is to be subtracted 00049 ); 00050 00051 /****************************************************************************** 00052 DetermineTrimmedImageg() This private routine determines the region of the 00053 input pmReadout which will be operated on by the various detrend modules. It 00054 does a metadata fetch on "CELL.TRIMSEC" for the parent cell of the pmReadout. 00055 00056 XXX: Consider making a pmUtils.c file and put this routine there. 00057 *****************************************************************************/ 00058 psImage *p_psDetermineTrimmedImage( 00059 pmReadout *in 00060 ); 00061 00062 #endif
1.4.5