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
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
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
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