00001 #ifndef __IAosLysaker4thOp__ 00002 #define __IAosLysaker4thOp__ 00003 00044 #include <stdio.h> 00045 00046 #include "IMultiImageOp.hpp" 00047 00048 #include "Real3CImage.hpp" 00049 00050 00051 class IAosLysaker4thOp : public IMultiImageOp 00052 { 00053 private: 00054 00055 int type; 00056 00057 int iter; 00058 double tau; 00059 double sigmaDelta; 00060 double sigmaBlur; 00061 00062 bool iir; 00063 bool nonLinear; 00064 00065 protected: 00066 00067 // mono channel 00068 00069 virtual AnImage* greyFilter(AnImage* src, AnImage* dest=0); 00070 virtual AnImage* greySelectedFilter(AnImage* mask, AnImage* src, AnImage* dest=0); 00071 00072 // separate color channels 00073 00074 virtual Real3CImage* scolorFilter(Real3CImage* src, Real3CImage* dest=0); 00075 virtual Real3CImage* scolorSelectedFilter(AnImage* mask, Real3CImage* src, Real3CImage* dest=0); 00076 00077 00078 // separate color channels 00079 00080 virtual Real3CImage* fcolorFilter(Real3CImage* src, Real3CImage* dest=0); 00081 virtual Real3CImage* fcolorSelectedFilter(AnImage* mask, Real3CImage* src, Real3CImage* dest=0); 00082 00083 public: 00084 00085 IAosLysaker4thOp(int atype=0, int iterations=1, double t=0.5, 00086 double K=1.0, double sigma=3.0, 00087 bool iirF=false, bool colorFlag= false, bool nonLinearF=true) 00088 :IMultiImageOp(1,colorFlag) 00089 {type= atype; iter= iterations; tau= t; sigmaDelta= K; sigmaBlur=sigma; 00090 iir= iirF; nonLinear=nonLinearF; } 00091 virtual ~IAosLysaker4thOp(){} 00092 00093 00094 virtual void report(FILE* file){} 00095 }; 00096 00097 00098 #endif