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

IFGeneral2DHeatFlowOp.hpp

00001 #ifndef __IFGeneral2DHeatFlowOp__
00002 #define __IFGeneral2DHeatFlowOp__
00003 
00027 #include <stdio.h>
00028 
00029 #include "IFMultiImageOp.hpp"
00030 
00031 #include "Float3CImage.hpp"
00032 
00033 #include "SolverTimeScheme.hpp"
00034 
00035 class IFGeneral2DHeatFlowOp : public IFMultiImageOp 
00036 {
00037 private:
00038 
00039 SolverTimeScheme        family;
00040 
00041 int                     iter;
00042 int                     innerIter;
00043 double          tau;
00044 
00045 int                     typeSolver;
00046 float                   epsilon;
00047 
00048 protected:
00049 
00050 // mono channel
00051 
00052 virtual AnImage* greyFilter(AnImage* src, AnImage* dest=0);
00053 virtual AnImage* greySelectedFilter(AnImage* mask, AnImage* src, AnImage* dest=0);
00054 
00055 // separate color channels
00056 
00057 virtual Float3CImage* scolorFilter(Float3CImage* src, Float3CImage* dest=0);
00058 virtual Float3CImage* scolorSelectedFilter(AnImage* mask, Float3CImage* src, Float3CImage* dest=0);
00059 
00060 
00061 // separate color channels
00062 
00063 virtual Float3CImage* fcolorFilter(Float3CImage* src, Float3CImage* dest=0);
00064 virtual Float3CImage* fcolorSelectedFilter(AnImage* mask, Float3CImage* src, Float3CImage* dest=0);
00065 
00066 public:
00067         
00069 IFGeneral2DHeatFlowOp(int atypeSolver, int outIter=1, int iterMax=8, float t=0.5, float eps=1.0e-4, bool colorFlag= false)
00070                 :IFMultiImageOp(1,colorFlag)
00071         {family= LOD; typeSolver=atypeSolver; iter= outIter; innerIter= iterMax; tau= t; epsilon=eps;}
00072 IFGeneral2DHeatFlowOp(SolverTimeScheme afamily, int atypeSolver, 
00073                         int outIter=1, int iterMax=8, float t=0.5, float eps=1.0e-4, bool colorFlag= false)
00074                 :IFMultiImageOp(1,colorFlag)
00075         {family= afamily; typeSolver=atypeSolver; iter= outIter; innerIter= iterMax; tau= t; epsilon=eps;}
00076 virtual ~IFGeneral2DHeatFlowOp(){}
00077 
00078 
00079 virtual void report(FILE* file){}
00080 };
00081 
00082 
00083 #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