00001 #ifndef __ICThomasHeatOp__
00002 #define __ICThomasHeatOp__
00003
00044 #include <stdio.h>
00045
00046 #include "ICMultiImageOp.hpp"
00047
00048 #include "C3CImage.hpp"
00049
00050
00051 class ICThomasHeatOp : public ICMultiImageOp
00052 {
00053 private:
00054
00055 int iter;
00056 double tau;
00057
00058 double theta;
00059
00060 protected:
00061
00062
00063
00064 virtual AnImage* greyFilter(AnImage* src, AnImage* dest=0);
00065 virtual AnImage* greySelectedFilter(AnImage* mask, AnImage* src, AnImage* dest=0);
00066
00067
00068
00069 virtual C3CImage* scolorFilter(C3CImage* src, C3CImage* dest=0);
00070 virtual C3CImage* scolorSelectedFilter(AnImage* mask, C3CImage* src, C3CImage* dest=0);
00071
00072
00073
00074
00075 virtual C3CImage* fcolorFilter(C3CImage* src, C3CImage* dest=0);
00076 virtual C3CImage* fcolorSelectedFilter(AnImage* mask, C3CImage* src, C3CImage* dest=0);
00077
00078 public:
00079
00081 ICThomasHeatOp(int iterations=1, double t=0.5, double ctheta=0.001, bool colorFlag= false):ICMultiImageOp(1,colorFlag)
00082 {iter= iterations; tau= t; theta= ctheta;}
00083 virtual ~ICThomasHeatOp(){}
00084
00085 virtual AnImage* filter(AnImage* src, AnImage* dest=0);
00086 virtual AnImage* selectedFilter(AnImage* mask, AnImage* src, AnImage* dest=0);
00087
00088 virtual void report(FILE* file){}
00089 };
00090
00091
00092 #endif