00001 #ifndef __IFThomasHeatOp__ 00002 #define __IFThomasHeatOp__ 00003 00042 #include <stdio.h> 00043 00044 #include "IFMultiImageOp.hpp" 00045 00046 #include "Float3CImage.hpp" 00047 00048 00049 class IFThomasHeatOp : public IFMultiImageOp 00050 { 00051 private: 00052 00053 int iter; 00054 double tau; 00055 00056 protected: 00057 00058 // mono channel 00059 00060 virtual AnImage* greyFilter(AnImage* src, AnImage* dest=0); 00061 virtual AnImage* greySelectedFilter(AnImage* mask, AnImage* src, AnImage* dest=0); 00062 00063 // separate color channels 00064 00065 virtual Float3CImage* scolorFilter(Float3CImage* src, Float3CImage* dest=0); 00066 virtual Float3CImage* scolorSelectedFilter(AnImage* mask, Float3CImage* src, Float3CImage* dest=0); 00067 00068 00069 // separate color channels 00070 00071 virtual Float3CImage* fcolorFilter(Float3CImage* src, Float3CImage* dest=0); 00072 virtual Float3CImage* fcolorSelectedFilter(AnImage* mask, Float3CImage* src, Float3CImage* dest=0); 00073 00074 public: 00075 00077 IFThomasHeatOp(int iterations=1, double t=0.5, bool colorFlag= false):IFMultiImageOp(1,colorFlag) 00078 {iter= iterations; tau= t;} 00079 virtual ~IFThomasHeatOp(){} 00080 00081 00082 virtual void report(FILE* file){} 00083 }; 00084 00085 00086 #endif