00001 #ifndef __ISharpenOp__ 00002 #define __ISharpenOp__ 00003 00025 #include <stdio.h> 00026 00027 #include "IMultiImageOp.hpp" 00028 #include "Real3CImage.hpp" 00029 00030 00031 class ISharpenOp : public IMultiImageOp 00032 { 00033 private: 00034 00035 int type; 00036 double alpha; 00037 00038 protected: 00039 00040 // mono channel 00041 virtual AnImage* greyFilter(AnImage* src, AnImage* dest=0); 00042 virtual AnImage* greySelectedFilter(AnImage* mask, AnImage* src, AnImage* dest=0); 00043 00044 // separate color channels 00045 virtual Real3CImage* scolorFilter(Real3CImage* src, Real3CImage* dest=0); 00046 virtual Real3CImage* scolorSelectedFilter(AnImage* mask, Real3CImage* src, Real3CImage* dest=0); 00047 00048 // full color channels 00049 virtual Real3CImage* fcolorFilter(Real3CImage* src, Real3CImage* dest=0); 00050 virtual Real3CImage* fcolorSelectedFilter(AnImage* mask, Real3CImage* src, Real3CImage* dest=0); 00051 00052 public: 00053 ISharpenOp(int iter):IMultiImageOp(iter,false) 00054 {type= 1; alpha=0.1;} 00055 ISharpenOp(double strength, int iter):IMultiImageOp(iter,false) 00056 {type= 2; alpha=strength;} 00057 virtual ~ISharpenOp(){} 00058 00059 virtual void setType(int i){ type=i;} 00060 virtual void setAlpha(double val){ alpha=val;} 00061 00062 virtual void report(FILE* file){} 00063 }; 00064 00065 00066 #endif