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; // 0 is a point, 1 is 3x3, ... 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