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

IF2DRestorationOp.hpp

00001 #ifndef __IF2DRestorationOp__
00002 #define __IF2DRestorationOp__
00003 
00041 #include <stdio.h>
00042 
00043 #include "IFMultiImageOp.hpp"
00044 
00045 #include "Float3CImage.hpp"
00046 
00047 #include "IF2DHeatFlowOp.hpp"
00048 
00049 class IF2DRestorationOp : public IFMultiImageOp 
00050 {
00051 private:
00052 
00053 SolverFamily    family;
00054 
00055 int                     iter;
00056 double          tau;
00057 
00058 int                     typeSolver;
00059 float                   epsilon;
00060 bool                    implicitFlag;           // false= semi-implicit
00061 
00062 protected:
00063 
00064 // mono channel
00065 
00066 virtual AnImage* greyFilter(AnImage* src, AnImage* dest=0);
00067 virtual AnImage* greySelectedFilter(AnImage* mask, AnImage* src, AnImage* dest=0);
00068 
00069 // separate color channels
00070 
00071 virtual Float3CImage* scolorFilter(Float3CImage* src, Float3CImage* dest=0);
00072 virtual Float3CImage* scolorSelectedFilter(AnImage* mask, Float3CImage* src, Float3CImage* dest=0);
00073 
00074 
00075 // separate color channels
00076 
00077 virtual Float3CImage* fcolorFilter(Float3CImage* src, Float3CImage* dest=0);
00078 virtual Float3CImage* fcolorSelectedFilter(AnImage* mask, Float3CImage* src, Float3CImage* dest=0);
00079 
00080 public:
00081         
00083 IF2DRestorationOp(int atypeSolver, bool implicit=false, int iterMax=8, float t=0.5, float eps=1.0e-4, bool colorFlag= false)
00084                 :IFMultiImageOp(1,colorFlag)
00085         {family= Full2D; typeSolver=atypeSolver; implicitFlag=implicit; iter= iterMax; tau= t; epsilon=eps;}
00086 IF2DRestorationOp(SolverFamily afamily, int atypeSolver, bool implicit=false, 
00087                         int iterMax=8, float t=0.5, float eps=1.0e-4, bool colorFlag= false)
00088                 :IFMultiImageOp(1,colorFlag)
00089         {family= afamily; typeSolver=atypeSolver; implicitFlag=implicit; iter= iterMax; tau= t; epsilon=eps;}
00090 virtual ~IF2DRestorationOp(){}
00091 
00092 
00093 virtual void report(FILE* file){}
00094 };
00095 
00096 
00097 #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