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; // cached value for sigma2 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