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

FastRestorationFactory.hpp

00001 #ifndef __FastRestorationFactory__
00002 #define __FastRestorationFactory__
00003 
00024 #include <stdio.h>
00025 
00026 #include "IMultiImageOp.hpp"
00027 
00028 #define NUMBER_FAST_RESTORATION_CONTEXT 5
00029 #define NUMBER_FAST_RESTORATION_MODELS 10
00030 
00031 class FastRestorationFactory
00032 {
00033 public:
00034 
00035 const static char       context[NUMBER_FAST_RESTORATION_CONTEXT][64]; 
00036 const static char       model[NUMBER_FAST_RESTORATION_MODELS][64]; 
00037 const static int        modelContext[NUMBER_FAST_RESTORATION_MODELS]; 
00038 
00039 protected:
00040 
00041 // Semi-Imlicit sequential LOD restorations
00042 IMultiImageOp* createLodPeronaFlow(int iter=1, double timeStep=2.0, double rSigma=1.0, double contrast=4.0);
00043 IMultiImageOp* createStrangPeronaFlow(int iter=1, double timeStep=2.0, double rSigma=1.0, double contrast=4.0);
00044 IMultiImageOp* createAfiPeronaFlow(int iter=1, double timeStep=2.0, double rSigma=1.0, double contrast=4.0);
00045 
00046 // Semi-Implicit parallel AOS restorations
00047 IMultiImageOp* createAosPeronaFlow(int iter=1, double timeStep=2.0, double rSigma=1.0, double contrast=4.0);
00048 IMultiImageOp* createAosPerona1Flow(int iter=1, double timeStep=2.0, double rSigma=1.0, double contrast=4.0);
00049 IMultiImageOp* createAosPerona2Flow(int iter=1, double timeStep=2.0, double rSigma=1.0, double contrast=4.0);
00050 
00051 IMultiImageOp* createAosRofFlow(int iter=1, double timeStep=2.0, double rSigma=1.0);
00052 
00053 IMultiImageOp* createAosTvFlow(int iter=1, double timeStep=2.0, double rSigma=1.0, double lambda=0.1);
00054 
00055 
00056 // Semi-Implicit parallel Pyramidal AOS restorations
00057 IMultiImageOp* createPyramidalAosPerona(int iter=1, double timeStep=2.0, double rSigma=1.0, double contrast=4.0);
00058 
00059 IMultiImageOp* createImplicitAmosPeronaFlow(int iter=1, double timeStep=2.0, double rSigma=1.0, double contrast=4.0);
00060 
00061 public:
00062 FastRestorationFactory(){}
00063 virtual ~FastRestorationFactory(){}
00064 
00065 static int numberOfContexts(){ return NUMBER_FAST_RESTORATION_CONTEXT; }
00066 static int numberOfModels(){ return NUMBER_FAST_RESTORATION_MODELS; }
00067 
00068 static const char*      getContext(int i){ return FastRestorationFactory::context[getModelContext(i)]; }
00069 static const char*      getModel(int i){ return FastRestorationFactory::model[i]; }
00070 static const int        getModelContext(int i){ return FastRestorationFactory::modelContext[i]; }
00071 
00072 IMultiImageOp* createModel(int indexModel, int iter=1, double timeStep=2.0, double rSigma=1.0, double contrast=4.0);
00073 
00074 virtual void report(FILE* file){}
00075 };
00076 
00077 
00078 
00079 #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