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 // basic filter parameters 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 // single shot filtering 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