00001 #ifndef __FVariationalRestorationSpace_H__
00002 #define __FVariationalRestorationSpace_H__
00003
00054 #include "FClassicAnisotropicSpace.hpp"
00055
00056 class FVariationalRestorationSpace : public FClassicAnisotropicSpace
00057 {
00058 protected:
00059
00060
00061 float tauRight;
00062 float beta;
00063
00064 FImage* f;
00065
00066 public:
00067 FVariationalRestorationSpace(double sigma=2.0, double acontrast=1.0, double abeta=0.0, int diffusivity=0, int gradType=0 );
00068 virtual ~FVariationalRestorationSpace(){}
00069
00070 virtual void setI0(FImage* u0){f=u0;}
00071 virtual FImage* getI0(){return f;}
00072
00073 virtual void setTauRight(float t){tauRight= t;}
00074 virtual float getTauRight(){return tauRight;}
00075
00076
00077
00078 virtual AFSymMatrix* getA(float tau, FImage* uk, AFSymMatrix* A=0);
00079 virtual FloatVector* getB(FImage* ik, FloatVector* uk=0);
00080
00081
00082
00083 virtual AFSymMatrix* getRowA(float tau, FImage* uk, int row, AFSymMatrix* A1=0);
00084 virtual AFSymMatrix* getColA(float tau, FImage* uk, int col, AFSymMatrix* A2=0);
00085
00086 virtual FloatVector* getRowB(FImage* ik, int row, FloatVector* uk=0);
00087 virtual FloatVector* getColB(FImage* ik, int col, FloatVector* uk=0);
00088 };
00089
00090 #endif
00091
00092