00001 #ifndef __IWaveletDenoisingOp__ 00002 #define __IWaveletDenoisingOp__ 00003 00004 00005 00052 #include <stdio.h> 00053 00054 #include "IMultiImageOp.hpp" 00055 00056 #include "Real3CImage.hpp" 00057 00058 #include "RWaveletDenoisingOp.hpp" 00059 00060 class IWaveletDenoisingOp : public IMultiImageOp 00061 { 00062 private: 00063 00064 WvltDenoising typeDenoising; 00065 int levels; 00066 int typeWavelet; 00067 00068 protected: 00069 00070 // mono channel 00071 virtual AnImage* greyFilter(AnImage* src, AnImage* dest=0); 00072 00073 // separate color channels 00074 virtual Real3CImage* scolorFilter(Real3CImage* src, Real3CImage* dest=0); 00075 00076 public: 00077 00078 IWaveletDenoisingOp(bool colorFlag= false):IMultiImageOp(1,colorFlag) 00079 { typeDenoising= SureShrink; levels= 3; typeWavelet= 0; } 00080 IWaveletDenoisingOp(WvltDenoising type, int wlevels, int waveletId=0,bool colorFlag= false) 00081 :IMultiImageOp(1,colorFlag) 00082 { typeDenoising= type; levels= wlevels; typeWavelet= waveletId; } 00083 virtual ~IWaveletDenoisingOp(){} 00084 00085 00086 virtual void report(FILE* file){} 00087 }; 00088 00089 00090 #endif