00001 #ifndef __ARColorImageFilter__
00002 #define __ARColorImageFilter__
00003 
00004 
00005 
00024 #include <stdio.h>
00025 
00026 #include "AnImage.hpp"
00027 #include "Real3CImage.hpp"
00028 
00029 class ARColorImageFilter
00030 {
00031 protected:
00032 
00033 double                          minPixelValue;
00034 double                          maxPixelValue;
00035 
00036 int                                     maskValue;                      
00037 
00038 int                                     nMask;
00039 int*                            xm;
00040 int*                            ym;
00041 
00042 protected:
00043 
00044 virtual void loadMask(AnImage& mask);
00045 virtual void unloadMask(){ delete[] xm; delete[] ym; nMask=0; minPixelValue=0.0; maxPixelValue=255.0;}
00046 
00047 public:
00048         
00049 ARColorImageFilter(){maskValue=1;}
00050 virtual ~ARColorImageFilter(){}
00051 
00052 virtual void setBoundaries(double minval, double maxval)
00053                 {minPixelValue= minval; maxPixelValue= maxval;}
00054 
00055 virtual int  getMaskValue(){return maskValue;}
00056 virtual void setMaskValue(int value){maskValue= value;}
00057 
00058 
00059 virtual Real3CImage* filter(Real3CImage* src, Real3CImage* dest=0)=0;
00060 
00061 virtual Real3CImage* selectedFilter(AnImage* mask, Real3CImage* src, Real3CImage* dest=0)
00062                 {
00063                 return filter(src, dest);
00064                 }
00065 
00066 
00067 virtual Real3CImage* mfilter(int n, Real3CImage* src, Real3CImage* dest=0);
00068 virtual Real3CImage* mSelectedFilter(int n, AnImage* mask, Real3CImage* src, Real3CImage* dest=0);
00069 
00070 virtual void report(FILE* file){}
00071 };
00072 
00073 
00074 #endif