00001 #ifndef __RAosPeronaCDDinpainting__
00002 #define __RAosPeronaCDDinpainting__
00003
00004
00061 #include <stdio.h>
00062
00063 #include "RSimpleAosOp.hpp"
00064
00065 #include "AbsRImageFlow.hpp"
00066 #include "AnImage.hpp"
00067
00068 class RAosPeronaCDDinpainting : public RSimpleAosOp
00069 {
00070 private:
00071
00072 AbsRImageFlow* curvatureLikeFlow;
00073
00074 AnImage* inpaintingArea;
00075
00076 RImage* f;
00077
00078 protected:
00079
00080 virtual double g(int i, int j);
00081
00082
00083 virtual double gRestoration(int i, int j);
00084 virtual double gInpainting(int i, int j);
00085
00086 public:
00087
00088 RAosPeronaCDDinpainting(int iterations=8, double t=0.5,
00089 double deltaGradient=16.0, double asigma=5.0, bool iirFlag=false);
00090 RAosPeronaCDDinpainting(AbsRImageFlow* annihilator, int iterations=8, double t=0.5,
00091 double deltaGradient=16.0, double asigma=5.0, bool iirFlag=false);
00092 virtual ~RAosPeronaCDDinpainting(){}
00093
00094
00095
00096 virtual RImage* selectedFilter(AnImage* mask, RImage* src, RImage* dest=0);
00097
00098 virtual void report(FILE* file){ fprintf(file,"Real Aos Perona Operator\n"); }
00099 };
00100
00101
00102 #endif