00001 #ifndef __IThomasPeronaOp__ 00002 #define __IThomasPeronaOp__ 00003 00029 #include <stdio.h> 00030 00031 #include "IMultiImageOp.hpp" 00032 00033 #include "Real3CImage.hpp" 00034 00035 00036 class IThomasPeronaOp : public IMultiImageOp 00037 { 00038 private: 00039 00040 int iter; 00041 double tau; 00042 double contrast; 00043 00044 protected: 00045 00046 // mono channel 00047 00048 virtual AnImage* greyFilter(AnImage* src, AnImage* dest=0); 00049 virtual AnImage* greySelectedFilter(AnImage* mask, AnImage* src, AnImage* dest=0); 00050 00051 // separate color channels 00052 00053 virtual Real3CImage* scolorFilter(Real3CImage* src, Real3CImage* dest=0); 00054 virtual Real3CImage* scolorSelectedFilter(AnImage* mask, Real3CImage* src, Real3CImage* dest=0); 00055 00056 00057 // separate color channels 00058 00059 virtual Real3CImage* fcolorFilter(Real3CImage* src, Real3CImage* dest=0); 00060 virtual Real3CImage* fcolorSelectedFilter(AnImage* mask, Real3CImage* src, Real3CImage* dest=0); 00061 00062 public: 00063 00064 IThomasPeronaOp(int iterations=1, double t=0.5, double aK=16.0, bool colorFlag= false):IMultiImageOp(1,colorFlag) 00065 {iter= iterations; tau= t; contrast=aK;} 00066 virtual ~IThomasPeronaOp(){} 00067 00068 00069 virtual void report(FILE* file){} 00070 }; 00071 00072 00073 #endif