00001 #ifndef __TVColorBeltramiFilter__
00002 #define __TVColorBeltramiFilter__
00003
00004
00026 #include <stdio.h>
00027
00028 #include "AnImage.hpp"
00029 #include "RImage.hpp"
00030
00031 #include "ColorBeltramiFilter.hpp"
00032
00033 class TVColorBeltramiFilter : public ColorBeltramiFilter
00034 {
00035 protected:
00036
00037 Real3CImage* I0;
00038 Real3CImage* I;
00039
00040 double lambda[3];
00041
00042 double sumI0_2[3];
00043
00044 protected:
00045
00046
00047 virtual double operation(Real3CImage& image, int ch, int x, int y);
00048
00049 virtual void operations(Real3CImage& result, Real3CImage& image);
00050 virtual void operations(AnImage& mask, Real3CImage& result, Real3CImage& image);
00051
00052 public:
00053
00054 TVColorBeltramiFilter(int n=50, double ralpha=0.15):ColorBeltramiFilter(n, ralpha){}
00055 virtual ~TVColorBeltramiFilter(){}
00056
00057
00058
00059 virtual Real3CImage* filter(Real3CImage* src, Real3CImage* dest=0);
00060 virtual Real3CImage* selectedFilter(AnImage* mask, Real3CImage* src, Real3CImage* dest=0);
00061
00062
00063
00064 virtual void report(FILE* file){}
00065 };
00066
00067
00068 #endif