00001 #ifndef __F2DAosHeatFlowOp__ 00002 #define __F2DAosHeatFlowOp__ 00003 00004 00030 #include <stdio.h> 00031 00032 #include "AbsFImageFilter.hpp" 00033 00034 #include "AbsFLinearSolver.hpp" 00035 00036 class F2DAosHeatFlowOp : public AbsFImageFilter 00037 { 00038 protected: 00039 00040 int iterMax; 00041 int innerIterMax; 00042 float tau; 00043 float epsilon; 00044 00045 AbsFLinearSolver* linearSolver; 00046 00047 public: 00048 00050 F2DAosHeatFlowOp(int typeSolver, int iter=1, int innerIter=8, float t=0.5, float eps=1.0e-4); 00051 virtual ~F2DAosHeatFlowOp(){delete linearSolver;} 00052 00053 // single shot filtering 00054 virtual FImage* filter(FImage* src, FImage* dest=0); 00055 virtual FImage* selectedFilter(AnImage* mask, FImage* src, FImage* dest=0) 00056 { return filter(src, dest); } 00057 00058 virtual void report(FILE* file){ fprintf(file,"HeatFlow: 2D Linear Solver\n"); } 00059 }; 00060 00061 00062 #endif