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 // single shot filtering 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