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
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