00001 #ifndef __RVanVieltBlurringIirOp__
00002 #define __RVanVieltBlurringIirOp__
00003
00004
00026 #include <stdio.h>
00027
00028 #include "AbsRImageFilter.hpp"
00029
00030 class RVanVieltBlurringIirOp: public AbsRImageFilter
00031 {
00032 protected:
00033
00034
00035 double sigma;
00036 double q;
00037
00038 double b0;
00039 double b1;
00040 double b2;
00041 double b3;
00042 double B;
00043
00044 double b1_b0;
00045 double b2_b0;
00046 double b3_b0;
00047
00048 protected:
00049
00050 virtual double computeQfromSigma(double asigma);
00051 virtual void computeBparameters();
00052
00053 public:
00054
00055 RVanVieltBlurringIirOp(double asigma=1.0);
00056 virtual ~RVanVieltBlurringIirOp(){}
00057
00058
00059 virtual RImage* filter(RImage* src, RImage* dest=0);
00060 virtual RImage* selectedFilter(AnImage* mask, RImage* src, RImage* dest=0)
00061 { return filter(src, dest); }
00062
00063 virtual void report(FILE* file){ fprintf(file,"Real Recursive 2d Blur Operator\n"); }
00064 };
00065
00066
00067 #endif