00001 #ifndef __RVariationalRetinexOp__ 00002 #define __RVariationalRetinexOp__ 00003 00025 #include <stdio.h> 00026 00027 #include "AbsRImageFilter.hpp" 00028 00029 #include "ARMultiScaleImGenerator.hpp" 00030 #include "RMultiScaleImage.hpp" 00031 00032 class RVariationalRetinexOp : public AbsRImageFilter 00033 { 00034 private: 00035 00036 double gamma; 00037 00038 double alpha; 00039 double beta; 00040 00041 int levels; 00042 00043 ARMultiScaleImGenerator* pyramidGenerator; 00044 RMultiScaleImage* pyramidSrc; 00045 00046 public: 00047 00048 RVariationalRetinexOp(double agamma=1.6, double aalpha=0.03, double abeta=0.25, int maxlevels=4); 00049 virtual ~RVariationalRetinexOp(); 00050 00051 // single shot filtering 00052 virtual RImage* filter(RImage* src, RImage* dest=0); 00053 00054 virtual void report(FILE* file){ fprintf(file,"Real Variational Retinex\n"); } 00055 }; 00056 00057 00058 #endif