00001 #ifndef __ISelectiveShockOp__ 00002 #define __ISelectiveShockOp__ 00003 00004 00005 00027 #include <stdio.h> 00028 00029 #include "IMultiImageOp.hpp" 00030 #include "Real3CImage.hpp" 00031 00032 00033 class ISelectiveShockOp : public IMultiImageOp 00034 { 00035 protected: 00036 00037 // mono channel 00038 virtual AnImage* greyFilter(AnImage* src, AnImage* dest=0); 00039 virtual AnImage* greySelectedFilter(AnImage* mask, AnImage* src, AnImage* dest=0); 00040 00041 // separate color channels 00042 virtual Real3CImage* scolorFilter(Real3CImage* src, Real3CImage* dest=0); 00043 virtual Real3CImage* scolorSelectedFilter(AnImage* mask, Real3CImage* src, Real3CImage* dest=0); 00044 00045 // full color channels 00046 virtual Real3CImage* fcolorFilter(Real3CImage* src, Real3CImage* dest=0); 00047 virtual Real3CImage* fcolorSelectedFilter(AnImage* mask, Real3CImage* src, Real3CImage* dest=0); 00048 00049 public: 00050 ISelectiveShockOp(int iter=50,bool colorFlag= false):IMultiImageOp(iter,colorFlag){} 00051 virtual ~ISelectiveShockOp(){} 00052 00053 00054 virtual void report(FILE* file){} 00055 }; 00056 00057 00058 #endif