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