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
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