00001 #ifndef __RHomomorphicOp__
00002 #define __RHomomorphicOp__
00003 
00028 #include <stdio.h>
00029 
00030 #include "AbsRImageFilter.hpp"
00031 
00032 enum OutHRetinex {
00033         Reflectance=1,
00034         LogReflectance=2,
00035         Illumination=4,
00036         LogIllumination=5,
00037         Gamma=8 };
00038 
00039 class RHomomorphicOp : public  AbsRImageFilter
00040 {
00041 private:
00042 
00043 OutHRetinex                     type;                           
00044 
00045 double                          sigma;
00046 double                          gamma;
00047 
00048 public:
00049         
00050 RHomomorphicOp(double asigma=10.0, OutHRetinex atype=Reflectance, double agamma=1.0):AbsRImageFilter()
00051         {sigma=asigma; type= atype; gamma=agamma;}
00052 virtual ~RHomomorphicOp(){}
00053 
00054 void setSigma(double val){sigma= val;}
00055 
00056 
00057 virtual RImage* filter(RImage* src, RImage* dest=0);
00058 
00059 virtual void report(FILE* file){ fprintf(file,"Real Homomorphic filter\n"); }
00060 };
00061 
00062 
00063 #endif