00001 #ifndef __ICMultiImageOp__ 00002 #define __ICMultiImageOp__ 00003 00022 #include <stdio.h> 00023 00024 #include "AnImageOp.hpp" 00025 #include "C3CImage.hpp" 00026 00027 class ICMultiImageOp : public AnImageOp 00028 { 00029 protected: 00030 00031 bool fullColor; // determine if full color is used 00032 00033 int iterations; // default is 50 00034 00035 int ctype; // output complex type 0=real, 1=img, 2= root 00036 00037 protected: 00038 00039 // mono channel 00040 00041 virtual AnImage* greyFilter(AnImage* src, AnImage* dest=0); 00042 virtual AnImage* greySelectedFilter(AnImage* mask, AnImage* src, AnImage* dest=0) 00043 { return greyFilter(src,dest); } 00044 00045 // separate color channels 00046 00047 virtual C3CImage* scolorFilter(C3CImage* src, C3CImage* dest=0); 00048 virtual C3CImage* scolorSelectedFilter(AnImage* mask, C3CImage* src, C3CImage* dest=0) 00049 { return scolorFilter(src,dest); } 00050 00051 00052 // combined color channels 00053 00054 virtual C3CImage* fcolorFilter(C3CImage* src, C3CImage* dest=0); 00055 virtual C3CImage* fcolorSelectedFilter(AnImage* mask, C3CImage* src, C3CImage* dest=0) 00056 { return fcolorFilter(src,dest); } 00057 00058 public: 00059 ICMultiImageOp(int iter=50, bool colorFlag= false):AnImageOp() 00060 {fullColor= colorFlag; iterations= iter; ctype=0; } 00061 virtual ~ICMultiImageOp(){} 00062 00063 virtual void setOutType(int outType){ ctype= outType; } 00064 virtual int getOutType(){ return ctype; } 00065 00066 00067 virtual void setIterations(int i){ iterations=i;} 00068 00069 virtual AnImage* filter(AnImage* src, AnImage* dest=0); 00070 virtual AnImage* selectedFilter(AnImage* mask, AnImage* src, AnImage* dest=0); 00071 00072 virtual void report(FILE* file){} 00073 }; 00074 00075 00076 #endif