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

IPeronaProximityFabOp.hpp

00001 #ifndef __IPeronaProximityFabOp__
00002 #define __IPeronaProximityFabOp__
00003 
00004 
00005 
00028 #include <stdio.h>
00029 
00030 #include "IMultiImageOp.hpp"
00031 #include "Real3CImage.hpp"
00032 
00033 
00034 class IPeronaProximityFabOp : public IMultiImageOp 
00035 {
00036 private:
00037 
00038 double                  gsigma;                 // blurring of the gradient
00039 
00040 int                             nf;                             // order of (s/kf)^n
00041 double                  kf;                             // old lambda, used for linear constrains around the origin
00042 
00043 
00044 int                             nb;
00045 double                  alpha;                  // credit of backward diffusion
00046 double                  kb;                             // backward component
00047 double                  wb;                             // backward window
00048 
00049 double                  tau;
00050 
00051 double                  limitDistance;
00052 RImage*                 distanceMapEdges;
00053 
00054 protected:
00055 
00056 // mono channel
00057 virtual AnImage* greyFilter(AnImage* src, AnImage* dest=0);
00058 virtual AnImage* greySelectedFilter(AnImage* mask, AnImage* src, AnImage* dest=0);
00059 
00060 // separate color channels
00061 virtual Real3CImage* scolorFilter(Real3CImage* src, Real3CImage* dest=0);
00062 virtual Real3CImage* scolorSelectedFilter(AnImage* mask, Real3CImage* src, Real3CImage* dest=0);
00063 
00064 public:
00065 IPeronaProximityFabOp(int iter=16, double dt=0.1, RImage* dmap=0, double dlimit=5.0,
00066         int Nf=4, int Nb=2, double gSigma=3.0, double rkf=0.1, double rkb= 6.0, double rw=2.0, 
00067         bool colorFlag= false):IMultiImageOp(iter,colorFlag)
00068         {
00069         limitDistance=dlimit; 
00070         distanceMapEdges=dmap;
00071 
00072         tau= dt;
00073 
00074         nf= Nf;
00075         nb= Nb;
00076         gsigma=gSigma;
00077         kf= rkf;
00078         kb= rkb;
00079         wb= rw;
00080         }
00081 virtual ~IPeronaProximityFabOp(){}
00082 
00083 void    setEdgeDistance(RImage* distanceMap){ distanceMapEdges= distanceMap; } 
00084 
00085 virtual void report(FILE* file){}
00086 };
00087 
00088 
00089 #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