00001 #ifndef __RMinMaxBinaryFlow__
00002 #define __RMinMaxBinaryFlow__
00003 
00026 #include <stdio.h>
00027 
00028 #include "AnImage.hpp"
00029 #include "AbsRImageFilter.hpp"
00030 
00031 class RMinMaxBinaryFlow : public AbsRImageFilter
00032 {
00033 protected:
00034 
00035 int                     niterations;
00036 double          alpha;
00037 
00038 double          threshold;
00039 int                     widthStencil;           
00040 
00041 protected:
00042 
00043 virtual double average(RImage& im, int x,int y);
00044 
00045 virtual double operation(RImage& image, int x, int y);
00046 virtual void operations(RImage& result, RImage& image);
00047 virtual void operations(AnImage& mask, RImage& result, RImage& image);
00048 
00049 public:
00050         
00051 RMinMaxBinaryFlow(int n, double ralpha, double athreshold=0.0, int stencil=0);
00052 virtual ~RMinMaxBinaryFlow(){}
00053 
00054 
00055 virtual RImage* filter(RImage* src, RImage* dest=0);
00056 virtual RImage* selectedFilter(AnImage* mask, RImage* src, RImage* dest=0);
00057 
00058 virtual void report(FILE* file){}
00059 };
00060 
00061 
00062 #endif