00001 #ifndef __ISimpleColorTranfertOp__
00002 #define __ISimpleColorTranfertOp__
00003 
00004 
00005 
00024 #include "IMultiImageOp.hpp"
00025 #include "RColorRGBtoLab.hpp"
00026 
00027 class ISimpleColorTranfertOp : public IMultiImageOp
00028 {
00029 private:
00030 
00031 RColorRGBtoLab rgbToLab;
00032 
00033 double  meanExample[3];
00034 double  sigmaExample[3];
00035 
00036 protected:
00037 
00038 virtual AnImage* greyFilter(AnImage* src, AnImage* dest=0)
00039         { 
00040         if( dest == 0 ) dest= src->copy();
00041         return dest;
00042         }
00043 
00044 virtual Real3CImage* scolorFilter(Real3CImage* src, Real3CImage* dest=0);
00045 
00046 
00047 
00048 virtual Real3CImage* fcolorFilter(Real3CImage* src, Real3CImage* dest=0)
00049         { return scolorFilter(src, dest); }
00050 
00051 public:
00052         
00053 ISimpleColorTranfertOp(int iter=1, bool colorFlag= false):IMultiImageOp(iter){}
00054 virtual ~ISimpleColorTranfertOp(){}
00055 
00056 virtual void setReference(AnImage* example);
00057 
00058 virtual void report(FILE* file){}
00059 };
00060 
00061 
00062 #endif