00001 #ifndef __IFMultiImageOp__
00002 #define __IFMultiImageOp__
00003
00004
00023 #include <stdio.h>
00024
00025 #include "AnImageOp.hpp"
00026 #include "Float3CImage.hpp"
00027
00028
00029 class IFMultiImageOp : public AnImageOp
00030 {
00031 protected:
00032
00033 bool fullColor;
00034
00035 int iterations;
00036
00037 float minPixelValue;
00038 float maxPixelValue;
00039
00040 protected:
00041
00042
00043
00044 virtual AnImage* greyFilter(AnImage* src, AnImage* dest=0);
00045 virtual AnImage* greySelectedFilter(AnImage* mask, AnImage* src, AnImage* dest=0)
00046 { return greyFilter(src,dest); }
00047
00048
00049
00050 virtual Float3CImage* scolorFilter(Float3CImage* src, Float3CImage* dest=0);
00051 virtual Float3CImage* scolorSelectedFilter(AnImage* mask, Float3CImage* src, Float3CImage* dest=0)
00052 { return scolorFilter(src,dest); }
00053
00054
00055
00056
00057 virtual Float3CImage* fcolorFilter(Float3CImage* src, Float3CImage* dest=0);
00058 virtual Float3CImage* fcolorSelectedFilter(AnImage* mask, Float3CImage* src, Float3CImage* dest=0)
00059 { return fcolorFilter(src,dest); }
00060
00061 public:
00062 IFMultiImageOp(int iter=50, bool colorFlag= false):AnImageOp()
00063 {fullColor= colorFlag; iterations= iter; minPixelValue=0; maxPixelValue=255.0;}
00064 virtual ~IFMultiImageOp(){}
00065
00066 virtual void setIterations(int iter){iterations= iter;}
00067
00068 virtual AnImage* filter(AnImage* src, AnImage* dest=0);
00069 virtual AnImage* filter(AR3ChannelConverter* convertor, AnImage* src, AnImage* dest=0);
00070
00071 virtual AnImage* selectedFilter(AnImage* mask, AnImage* src, AnImage* dest=0);
00072
00073 virtual AnImage* selectedFilter(AR3ChannelConverter* convertor, AnImage* mask,
00074 AnImage* src, AnImage* dest=0);
00075
00076 virtual void report(FILE* file){}
00077 };
00078
00079
00080 #endif