00001 #ifndef __FVanVieltBlurringIirOp__
00002 #define __FVanVieltBlurringIirOp__
00003
00004
00026 #include <stdio.h>
00027
00028 #include "AbsFImageFilter.hpp"
00029
00030 class FVanVieltBlurringIirOp: public AbsFImageFilter
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 float B;
00043
00044 float b1_b0;
00045 float b2_b0;
00046 float b3_b0;
00047
00048 protected:
00049
00050 virtual double computeQfromSigma(double asigma);
00051 virtual void computeBparameters();
00052
00053 public:
00054
00055 FVanVieltBlurringIirOp(double asigma=1.0);
00056 virtual ~FVanVieltBlurringIirOp(){}
00057
00058
00059 virtual FImage* filter(FImage* src, FImage* dest=0);
00060 virtual FImage* selectedFilter(AnImage* mask, FImage* src, FImage* dest=0)
00061 { return filter(src, dest); }
00062
00063 virtual void report(FILE* file){ fprintf(file,"Float Recursive 2d Blur Operator\n"); }
00064 };
00065
00066
00067 #endif