00001 #ifndef __RTVInpainter__ 00002 #define __RTVInpainter__ 00003 00027 #include <stdio.h> 00028 00029 #include "RImage.hpp" 00030 #include "AbsRImageFilter.hpp" 00031 00032 class RTVInpainter : public AbsRImageFilter 00033 { 00034 private: 00035 00036 double dt; 00037 00038 RImage* I0; 00039 RImage* I; 00040 00041 bool optimized; 00042 00043 00044 protected: 00045 00046 double operation(int x, int y); // simple Rudin/Osher/Fatemi model 00047 double fastOperation(int x, int y); // using marquina gradient multiplier optimisation 00048 00049 public: 00050 00051 RTVInpainter(double deltaT=0.2, bool optimal=false); 00052 virtual ~RTVInpainter(){} 00053 00054 00055 // single shot filtering 00056 virtual RImage* filter(RImage* src, RImage* dest=0){ return 0; } 00057 virtual RImage* selectedFilter(AnImage* mask, RImage* src, RImage* dest=0); 00058 00059 virtual void report(FILE* file){ fprintf(file,"Real Bertalmio Inpainter\n"); } 00060 }; 00061 00062 00063 #endif