00001 #ifndef __R3SepCImageFilter__ 00002 #define __R3SepCImageFilter__ 00003 00004 00005 00024 #include <stdio.h> 00025 00026 #include "AnImage.hpp" 00027 #include "AbsRImageFilter.hpp" 00028 00029 #include "Real3CImage.hpp" 00030 00031 class R3SepCImageFilter 00032 { 00033 private: 00034 00035 AbsRImageFilter* singleChannelFilter; 00036 00037 public: 00038 00039 R3SepCImageFilter(AbsRImageFilter* aFilter){ singleChannelFilter= aFilter; } 00040 virtual ~R3SepCImageFilter(){} 00041 00042 00043 // single shot filtering 00044 virtual Real3CImage* filter(Real3CImage* src, Real3CImage* dest=0); 00045 virtual Real3CImage* selectedFilter(AnImage* mask, Real3CImage* src, Real3CImage* dest=0); 00046 00047 // iterative filter form 00048 virtual Real3CImage* mfilter(int n, Real3CImage* src, Real3CImage* dest=0); 00049 virtual Real3CImage* mSelectedFilter(int n, AnImage* mask, Real3CImage* src, Real3CImage* dest=0); 00050 00051 virtual void report(FILE* file){} 00052 }; 00053 00054 00055 #endif