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 // combined color channels 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