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