|
Wavelet and Image class library
1.3.2
|
00001 /* 00002 * class Wavelet 00003 * 00004 * $Date$ 00005 * $Revision$ 00006 * 00007 */ 00008 00009 #ifndef WAVELET_HH__ 00010 #define WAVELET_HH__ 00011 00012 #include "WImage/ReferenceVector.hh" 00013 #include "Wave/VectorPosition.hh" 00014 #include "Wave/Filter.hh" 00015 00024 class 00025 Wavelet 00026 { 00027 public: 00039 int level (ReferenceVector &dest, ReferenceVector &src, int steps); 00040 00042 Wavelet (FilterSet &fset); 00044 virtual ~Wavelet (void); 00045 00057 void analysis (ReferenceVector &dest, ReferenceVector &src, int steps); 00058 00059 00071 void synthesis (ReferenceVector &dest, ReferenceVector &src, 00072 int steps, int prevSteps = 0); 00073 00083 virtual void 00084 anastep (ReferenceVector &dest, ReferenceVector &src, int size); 00094 virtual void 00095 synstep (ReferenceVector &dest, ReferenceVector &src, int size); 00096 00097 #ifdef INCLUDE_DEPRECATED_API 00098 inline void analysis (ReferenceVector *dest, ReferenceVector *src, 00099 int steps) { analysis (*dest, *src, steps); } 00100 inline void synthesis (ReferenceVector *dest, ReferenceVector *src, 00101 int steps) { synthesis (*dest, *src, steps); } 00102 #endif 00103 00104 protected: 00109 void init (FilterSet *pfset = NULL); 00111 Filter *m_analow; // H and G 00113 Filter *m_anahigh; 00115 Filter *m_synlow; // H~ and G~ 00117 Filter *m_synhigh; 00119 VectorPosition *m_apad; 00121 VectorPosition *m_slpad; 00123 VectorPosition *m_shpad; 00125 bool m_symmetric; 00127 int m_npad; 00129 int *m_apositions; 00131 int m_apsize; 00133 int *m_slpositions; 00135 int m_slpsize; 00137 int *m_shpositions; 00139 int *m_shsigns; 00141 int m_shpsize; 00142 00143 }; /* class Wavelet */ 00144 00147 #endif /* WAVELET_HH__ */ 00148 00149
1.7.6.1