00001 #ifndef __ICShockOp__
00002 #define __ICShockOp__
00003
00004
00005
00027 #include <stdio.h>
00028
00029 #include "ICMultiImageOp.hpp"
00030
00031 #include "C3CImage.hpp"
00032
00033
00034 class ICShockOp : public ICMultiImageOp
00035 {
00036 private:
00037
00038 int type;
00039
00040 double alpha;
00041
00042 double lambda;
00043 double theta;
00044
00045 double lambdaT;
00046 double a;
00047
00048
00049 protected:
00050
00051
00052
00053 virtual AnImage* greyFilter(AnImage* src, AnImage* dest=0);
00054 virtual AnImage* greySelectedFilter(AnImage* mask, AnImage* src, AnImage* dest=0);
00055
00056
00057
00058 virtual C3CImage* scolorFilter(C3CImage* src, C3CImage* dest=0);
00059 virtual C3CImage* scolorSelectedFilter(AnImage* mask, C3CImage* src, C3CImage* dest=0);
00060
00061
00062
00063
00064 virtual C3CImage* fcolorFilter(C3CImage* src, C3CImage* dest=0);
00065 virtual C3CImage* fcolorSelectedFilter(AnImage* mask, C3CImage* src, C3CImage* dest=0);
00066
00067 public:
00068
00069 ICShockOp(int iter, double anAlpha=0.03, int atype=0,
00070 double rlambda=0.2, double atheta=0.001, double ax=1.0, double lambdaTg=1.0, bool colorFlag= false)
00071 :ICMultiImageOp(iter,colorFlag)
00072 {type=atype; alpha=anAlpha; theta= atheta; lambda=rlambda; lambdaT= lambdaTg; a=ax;}
00073 virtual ~ICShockOp(){}
00074
00075 virtual AnImage* filter(AnImage* src, AnImage* dest=0);
00076 virtual AnImage* selectedFilter(AnImage* mask, AnImage* src, AnImage* dest=0);
00077
00078 virtual void report(FILE* file){}
00079 };
00080
00081
00082 #endif