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

FFastRestorationFactory.hpp

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