00001 #ifndef __AFSplittedRestorationLS__ 00002 #define __AFSplittedRestorationLS__ 00003 00004 00063 #include <stdio.h> 00064 00065 #include "AbsFRestorationLS.hpp" 00066 00067 #include "AbsFLinearSolver.hpp" 00068 00069 00070 class AFSplittedRestorationLS : public AbsFRestorationLS 00071 { 00072 protected: 00073 00074 int solverType; 00075 AbsFLinearSolver* hSolver; 00076 AbsFLinearSolver* vSolver; 00077 00078 // temporary results 00079 FloatVector* ukRow; 00080 FloatVector* uk1Row; 00081 00082 FloatVector* ukCol; 00083 FloatVector* uk1Col; 00084 00085 public: 00086 AFSplittedRestorationLS(int outerIter, int innerIter, double t, AFSpatialDiscretisation* smodel, 00087 bool normalized=true, bool nonLinearFlag=true); 00088 AFSplittedRestorationLS(int model, int outerIter, int innerIter, double t, AFSpatialDiscretisation* smodel, 00089 bool normalized=true, bool nonLinearFlag=true); 00090 virtual ~AFSplittedRestorationLS(){delete hSolver; delete vSolver;} 00091 00092 virtual void setHSolver(int model); 00093 virtual void setVSolver(int model); 00094 00095 virtual FImage* filter(FImage* src, FImage* dest=0); 00096 00097 virtual void report(FILE* file){ fprintf(file,"Splitted 2D restoration\n"); } 00098 }; 00099 00100 00101 #endif