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

InpaintingFactory.hpp

00001 #ifndef __InpaintingFactory__
00002 #define __InpaintingFactory__
00003 
00004 
00005 
00024 #include <stdio.h>
00025 
00026 #include "AnImageOp.hpp"
00027 
00028 #define NUMBER_INPAINTING_CONTEXT 4
00029 #define NUMBER_INPAINTING_MODELS  7
00030 
00031 class InpaintingFactory
00032 {
00033 public:
00034 
00035 const static char       context[NUMBER_INPAINTING_CONTEXT][64]; 
00036 const static char       model[NUMBER_INPAINTING_MODELS][64]; 
00037 const static int        modelContext[NUMBER_INPAINTING_MODELS]; 
00038 
00039 protected:
00040 
00041 // Superfast Fast Marching inpainting
00042 AnImageOp* createFMMInpainting();
00043 
00044 // Fast Oliveira Inpainting
00045 AnImageOp* createOliveiraInpainting(int np);
00046 
00047 // transport based
00048 AnImageOp* createBertalmioInpainting(int np);
00049 
00050 // diffusive based
00051 AnImageOp* createTVInpainting(int np);
00052 AnImageOp* createCDDInpainting(int np);
00053 
00054 // transport & diffusive based
00055 AnImageOp* createEulerElasticaInpainting(int np);
00056 AnImageOp* createMRinvariantInpainting(int np);
00057 
00058 public:
00059 InpaintingFactory(){}
00060 virtual ~InpaintingFactory(){}
00061 
00062 static int numberOfContexts(){ return NUMBER_INPAINTING_CONTEXT; }
00063 static int numberOfModels(){ return NUMBER_INPAINTING_MODELS; }
00064 
00065 static const char*      getContext(int i){ return InpaintingFactory::context[getModelContext(i)]; }
00066 static const char*      getModel(int i){ return InpaintingFactory::model[i]; }
00067 static const int        getModelContext(int i){ return InpaintingFactory::modelContext[i]; }
00068 
00069 AnImageOp* createModel(int indexModel,int np=100);
00070 
00071 virtual void report(FILE* file){}
00072 };
00073 
00074 
00075 
00076 #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