00001 #ifndef __RAosPeronaFabOp__ 00002 #define __RAosPeronaFabOp__ 00003 00004 00051 #include <stdio.h> 00052 00053 #include "RSimpleAosOp.hpp" 00054 00055 00056 class RAosPeronaFabOp : public RSimpleAosOp 00057 { 00058 protected: 00059 00060 RImage* I0; // origin image 00061 00062 double gsigma; // blurring of the gradient 00063 RImage* gradI0; // norm of gradient of I0 00064 00065 int nf; // order of (s/kf)^n 00066 double kf; // old lambda, used for linear constrains around the origin 00067 00068 00069 int nb; 00070 double alpha; // credit of backward diffusion 00071 double kb; // backward component 00072 double wb; // backward window 00073 00074 virtual double g(int i, int j); 00075 00076 public: 00077 00078 RAosPeronaFabOp(int iterations=8, double t=0.5, 00079 int nf=4, int nb=2, double gSigma=3.0, 00080 double rkf=0.1, double asigma=5.0, double rkb= 6.0, double rw=2.0, 00081 bool iirFlag=false, bool nonLinearFlag=true); 00082 virtual ~RAosPeronaFabOp(){} 00083 00084 virtual RImage* filter(RImage* src, RImage* dest=0); 00085 00086 virtual void report(FILE* file){ fprintf(file,"Real FAB Aos Perona Operator\n"); } 00087 }; 00088 00089 00090 #endif