Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   Related Pages  

IFClassicAnisotropicOp.hpp

00001 #ifndef __IFClassicAnisotropicOp__
00002 #define __IFClassicAnisotropicOp__
00003 
00026 #include <stdio.h>
00027 
00028 #include "IFMultiImageOp.hpp"
00029 
00030 #include "Float3CImage.hpp"
00031 
00032 #include "SolverTimeScheme.hpp"
00033 #include "Diffusivity.hpp"
00034 
00035 class IFClassicAnisotropicOp : public IFMultiImageOp 
00036 {
00037 private:
00038 
00039 SolverTimeScheme        family;
00040 
00041 int                     iter;
00042 int                     innerIter;
00043 double          tau;
00044 double          sigma;
00045 double          contrast;
00046 
00047 int                     typeSolver;
00048 float                   epsilon;
00049 
00050 bool                    cfl;
00051 Diffusivity             diffusivity;
00052 int                     typeGradient;
00053 
00054 protected:
00055 
00056 // mono channel
00057 
00058 virtual AnImage* greyFilter(AnImage* src, AnImage* dest=0);
00059 virtual AnImage* greySelectedFilter(AnImage* mask, AnImage* src, AnImage* dest=0);
00060 
00061 // separate color channels
00062 
00063 virtual Float3CImage* scolorFilter(Float3CImage* src, Float3CImage* dest=0);
00064 virtual Float3CImage* scolorSelectedFilter(AnImage* mask, Float3CImage* src, Float3CImage* dest=0);
00065 
00066 
00067 // separate color channels
00068 
00069 virtual Float3CImage* fcolorFilter(Float3CImage* src, Float3CImage* dest=0);
00070 virtual Float3CImage* fcolorSelectedFilter(AnImage* mask, Float3CImage* src, Float3CImage* dest=0);
00071 
00072 public:
00073         
00074 IFClassicAnisotropicOp(int atypeSolver, int outIter=1, int iterMax=8, 
00075                 float t=5.0, float asigma=2.0, float acontrast=1.0,  float eps=1.0e-4, bool colorFlag= false)
00076                 :IFMultiImageOp(1,colorFlag)
00077         {family= AFI; typeSolver=atypeSolver; iter= outIter; innerIter= iterMax; tau= t; epsilon=eps;
00078         sigma=asigma; contrast=acontrast; cfl=true; diffusivity= PmDiff; typeGradient=0;}
00079 IFClassicAnisotropicOp(SolverTimeScheme afamily, int atypeSolver, int outIter=1, int iterMax=8, 
00080                         float t=5.0, float asigma=2.0, float acontrast=1.0, 
00081                         Diffusivity diff=PmDiff, int typeGrad=0, bool cflTest=true, 
00082                         float eps=1.0e-4, bool colorFlag= false)
00083                 :IFMultiImageOp(1,colorFlag)
00084         {family= afamily; typeSolver=atypeSolver; iter= outIter; innerIter= iterMax; tau= t; epsilon=eps;       
00085         sigma=asigma; contrast=acontrast; cfl= cflTest; diffusivity= diff; typeGradient=typeGrad;}
00086 virtual ~IFClassicAnisotropicOp(){}
00087 
00088 
00089 virtual void report(FILE* file){}
00090 };
00091 
00092 
00093 #endif
SourceForge.net Logo
Restoreinpaint sourceforge project `C++/Java Image Processing, Restoration, Inpainting Project'.

Bernard De Cuyper: Open Project Leader: Concept, design and development.
Bernard De Cuyper & Eddy Fraiha 2002, 2003. Bernard De Cuyper 2004. Open and free, for friendly usage only.
Modifications on Belgium ground of this piece of artistic work, by governement institutions or companies, must be notified to Bernard De Cuyper.
bern_bdc@hotmail.com