00001 #ifndef __AbsEikonalFastSweepingOp__
00002 #define __AbsEikonalFastSweepingOp__
00003
00004
00005
00034 #include <stdio.h>
00035 #include <math.h>
00036
00037 #include "AbsRImageFilter.hpp"
00038
00039
00040 class AbsEikonalFastSweepingOp : public AbsRImageFilter
00041 {
00042 protected:
00043
00044 int maxIter;
00045
00046 double h;
00047 int width, height;
00048
00049 protected:
00050
00051 virtual double getPotential_h(int i, int j)=0;
00052 virtual void updatePsi(RImage* psi, int i, int j);
00053
00054 public:
00055
00056 AbsEikonalFastSweepingOp(int iter=1, double hx=1.0){ h=hx; maxIter=iter;}
00057 virtual ~AbsEikonalFastSweepingOp(){}
00058
00059 virtual void setPotential(RImage* imageMap){}
00060
00061
00062 virtual RImage* filter(RImage* src, RImage* dest=0);
00063 virtual RImage* selectedFilter(AnImage* mask, RImage* src, RImage* dest=0);
00064
00065 virtual void report(FILE* file){ fprintf(file,"Eikonal Fast Sweeping Operator\n"); }
00066 };
00067
00068
00069 #endif