00001 #ifndef __F2DLodHeatFlowOp__ 00002 #define __F2DLodHeatFlowOp__ 00003 00004 00045 #include <stdio.h> 00046 00047 #include "AbsFImageFilter.hpp" 00048 00049 #include "AbsFLinearSolver.hpp" 00050 00051 class F2DLodHeatFlowOp : public AbsFImageFilter 00052 { 00053 protected: 00054 00055 int iterMax; 00056 int innerIterMax; 00057 float tau; 00058 float epsilon; 00059 00060 AbsFLinearSolver* linearSolver; 00061 00062 public: 00063 00065 F2DLodHeatFlowOp(int typeSolver, int iter=1, int innerIter=8, float t=0.5, float eps=1.0e-4); 00066 virtual ~F2DLodHeatFlowOp(){delete linearSolver;} 00067 00068 // single shot filtering 00069 virtual FImage* filter(FImage* src, FImage* dest=0); 00070 virtual FImage* selectedFilter(AnImage* mask, FImage* src, FImage* dest=0) 00071 { return filter(src, dest); } 00072 00073 virtual void report(FILE* file){ fprintf(file,"HeatFlow: 2D Linear Solver\n"); } 00074 }; 00075 00076 00077 #endif