00001 #ifndef __IFAosBarashOp__
00002 #define __IFAosBarashOp__
00003
00044 #include <stdio.h>
00045
00046 #include "IFMultiImageOp.hpp"
00047
00048 #include "Float3CImage.hpp"
00049
00050
00051 class IFAosBarashOp : public IFMultiImageOp
00052 {
00053 private:
00054
00055 int iter;
00056
00057 bool perceptualFlag;
00058
00059 int psfSize;
00060 double tau;
00061
00062 double alpha;
00063
00064 double sigmaBlur;
00065 double c1;
00066
00067 bool iir;
00068
00069 protected:
00070
00071
00072
00073 virtual AnImage* greyFilter(AnImage* src, AnImage* dest=0);
00074 virtual AnImage* greySelectedFilter(AnImage* mask, AnImage* src, AnImage* dest=0);
00075
00076
00077
00078 virtual Float3CImage* scolorFilter(Float3CImage* src, Float3CImage* dest=0);
00079 virtual Float3CImage* scolorSelectedFilter(AnImage* mask, Float3CImage* src, Float3CImage* dest=0);
00080
00081
00082
00083
00084 virtual Float3CImage* fcolorFilter(Float3CImage* src, Float3CImage* dest=0);
00085 virtual Float3CImage* fcolorSelectedFilter(AnImage* mask, Float3CImage* src, Float3CImage* dest=0);
00086
00087 public:
00088
00089 IFAosBarashOp(int iterations=1, int psfSz=5, double t=10.0, double aalpha=0.01,
00090 double sigma=0.25, double ac1=0.33, bool perceptual= true, bool colorFlag= false)
00091 :IFMultiImageOp(1,colorFlag)
00092 {iter= iterations; tau= t; alpha= aalpha; sigmaBlur=sigma; c1=ac1; psfSize= psfSz; perceptualFlag= perceptual;}
00093 virtual ~IFAosBarashOp(){}
00094
00095
00096 virtual void report(FILE* file){}
00097 };
00098
00099
00100 #endif