source: branches/fitshead-branch/ATrous/atrous.hh @ 1441

Last change on this file since 1441 was 86, checked in by Matthew Whiting, 18 years ago

Large commit, mostly removing dud commented code, and adding comments and
documentation to the existing code. No new features.

File size: 2.8 KB
Line 
1#ifndef ATROUS_H
2#define ATROUS_H
3
4#ifndef PARAM_H
5#include <param.hh>
6#endif
7
8#include <vector>
9using std::vector;
10#include <string>
11using std::string;
12
13class Filter
14{
15public:
16  Filter();
17  ~Filter(){};
18  void   define(int code);
19  int    getNumScales(long length);
20  int    getMaxSize(int scale);
21  string getName(){return name;};
22  double coeff(int i){return filter1D[i];};
23  void   setCoeff(int i, double val){filter1D[i] = val;};
24  int    width(){return filter1D.size();};
25  int    maxFactor(int dim){return maxNumScales[dim-1];};
26  void   setMaxFactor(int dim, int val){maxNumScales[dim-1] = val;};
27  double sigmaFactor(int dim, int scale){return (*sigmaFactors[dim-1])[scale];};
28  void   setSigmaFactor(int dim, int scale, double val){(*sigmaFactors[dim])[scale] = val;};
29
30private:
31  string name;                // what is the filter called?
32  vector <double> filter1D;   // filter coefficients.
33  vector <int> maxNumScales;  // max number of scales for the sigmaFactor arrays, for each dim.
34  vector < vector <double>* > sigmaFactors; // arrays of sigmaFactors, one for each dim.
35
36  void   loadSpline();        // set up parameters for using the B3 Spline filter.
37  void   loadTriangle();      // set up parameters for using the Triangle function.
38  void   loadHaar();          // set up parameters for using the Haar wavelet.
39
40};
41
42
43// The tolerance in the reconstruction.
44const float reconTolerance = 0.005;
45
46//////////////////////////////////////////////////////////////////////////////////////
47
48void atrous1DReconstruct(long &size, float *&input, float *&output, Param &par);
49void atrous2DReconstruct(long &xdim, long &ydim, float *&input,float *&output, Param &par);
50void atrous3DReconstruct(long &xdim, long &ydim, long &zdim, float *&input,float *&output, Param &par);
51void atrous2DReconstructOLD(long &xdim, long &ydim, float *input,float *output, Param &par);
52void atrous3DReconstructOLD(long &xdim, long &ydim, long &zdim, float *&input,float *&output, Param &par);
53
54void atrousTransform(long &length, int &numScales, float *spectrum, double *coeffs, double *wavelet);
55void atrousTransform(long &length, float *spectrum, float *coeffs, float *wavelet);
56void atrousTransform2D(long &xdim, long &ydim, int &numScales, float *input, double *coeffs, double *wavelet, Param &par);
57void atrousTransform2D(long &xdim, long &ydim, int &numScales, float *input, double *coeffs, double *wavelet);
58void atrousTransform3D(long &xdim, long &ydim, long &zdim, int &numScales, float *&input, float *&coeffs, float *&wavelet, Param &par);
59void atrousTransform3D(long &xdim, long &ydim, long &zdim, int &numScales, float *input, float *coeffs, float *wavelet);
60
61void baselineSubtract(long numSpec, long specLength, float *originalCube, float *baseline, Param &par);
62void getBaseline(long size, float *input, float *baseline, Param &par);
63void getBaseline(long size, float *input, float *baseline);
64
65#endif
Note: See TracBrowser for help on using the repository browser.