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