00001 #ifndef __RSimpleRecursive2dBlurOp__
00002 #define __RSimpleRecursive2dBlurOp__
00003 
00004 
00037 #include <stdio.h>
00038 
00039 #include "AbsRImageFilter.hpp"
00040 
00041 class RSimpleRecursive2dBlurOp : public  AbsRImageFilter
00042 {
00043 protected:
00044 
00045 
00046 double          alpha;
00047 
00048 double          k;
00049 double          gamma, gamma2;
00050 
00051 protected:
00052 
00053 virtual void computeNormalisation();
00054 
00055 virtual void computeCausalFilter();
00056 virtual void computeNonCausalFilter();
00057 
00058 public:
00059         
00060 RSimpleRecursive2dBlurOp(double aalpha=1.0);
00061 virtual ~RSimpleRecursive2dBlurOp(){}
00062 
00063 
00064 virtual RImage* filter(RImage* src, RImage* dest=0);
00065 virtual RImage* selectedFilter(AnImage* mask, RImage* src, RImage* dest=0);
00066 
00067 virtual void report(FILE* file){ fprintf(file,"Real Recursive 2d Blur Operator\n"); }
00068 };
00069 
00070 
00071 #endif