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