00001 #ifndef __TVBeltramiFilter__
00002 #define __TVBeltramiFilter__
00003 
00004 
00005 
00027 #include <stdio.h>
00028 
00029 #include "BeltramiFilter.hpp"
00030 
00031 
00032 class TVBeltramiFilter : public BeltramiFilter
00033 {
00034 protected:
00035 
00036 double          sumI0_2;                
00037 
00038 protected:
00039 
00040 virtual double operation(RImage& image, int x, int y);
00041 
00042 virtual void channelConstrain();
00043 virtual void channelConstrain(AnImage& mask);
00044 
00045 virtual void operations(RImage& result);
00046 virtual void operations(AnImage& mask, RImage& result);
00047 
00048 public:
00049         
00050 TVBeltramiFilter(int n=75, double ralpha=0.2);
00051 virtual ~TVBeltramiFilter(){}
00052 
00053 
00054 virtual RImage* filter(RImage* src, RImage* dest=0);
00055 virtual RImage* selectedFilter(AnImage* mask, RImage* src, RImage* dest=0);
00056 
00057 virtual void report(FILE* file){}
00058 };
00059 
00060 
00061 #endif