00001 #ifndef __RAosCDDinpainting__ 00002 #define __RAosCDDinpainting__ 00003 00004 00061 #include <stdio.h> 00062 00063 #include "RSimpleAosOp.hpp" 00064 00065 #include "AbsRImageFlow.hpp" // generic curvature like flows 00066 #include "AnImage.hpp" 00067 00068 class RAosCDDinpainting : public RSimpleAosOp 00069 { 00070 private: 00071 00072 AbsRImageFlow* curvatureLikeFlow; // curvature, beltrami and all friends :-) Bernard OO fun 00073 00074 AnImage* inpaintingArea; // area reserved to the inpainting process 00075 00076 RImage* f; // intermediate image solution 00077 00078 protected: 00079 00080 // conductivity modulators 00081 virtual double g(int i, int j); 00082 00083 public: 00084 00085 RAosCDDinpainting(int iterations=8, double t=0.5, 00086 double deltaGradient=16.0, double asigma=5.0, bool iirFlag=false); 00087 RAosCDDinpainting(AbsRImageFlow* annihilator, int iterations=8, double t=0.5, 00088 double deltaGradient=16.0, double asigma=5.0, bool iirFlag=false); 00089 virtual ~RAosCDDinpainting(){} 00090 00091 // The non mask part will be restored via AOS Perona 00092 // The mask part inpainted via AOS modulated curvature CDD inpainting AT THE SAME TIME !!! Bernard De Cuyper 2003 00093 virtual RImage* selectedFilter(AnImage* mask, RImage* src, RImage* dest=0); 00094 00095 virtual void report(FILE* file){ fprintf(file,"Real Aos Perona Operator\n"); } 00096 }; 00097 00098 00099 #endif