00001 #ifndef __FClassicAnisotropicSpace_H__
00002 #define __FClassicAnisotropicSpace_H__
00003
00064 #include "AFSpatialDiscretisation.hpp"
00065 #include "FGradientNormOp.hpp"
00066
00067 #include "AbsFImageFilter.hpp"
00068
00069
00070 class FClassicAnisotropicSpace : public AFSpatialDiscretisation
00071 {
00072 protected:
00073
00074
00075 float sigmaRegularisation;
00076 float contrast;
00077 float contrast2;
00078 int diffusivity;
00079
00080 AbsFImageFilter* blurrer;
00081 FGradientNormOp* gradient;
00082
00083
00084 FImage* uSigma;
00085 FImage* g;
00086
00087 protected:
00088
00089 virtual FImage* gValues(FImage* src, FImage* dest=0);
00090
00091 public:
00092 FClassicAnisotropicSpace(double sigma=2.0, double acontrast=1.0, int diffusivity=0, int gradType=0 );
00093 virtual ~FClassicAnisotropicSpace(){delete gradient;}
00094
00095 virtual void init(FImage* uk);
00096
00097
00098
00099
00100 virtual AFSymMatrix* getA(float tau, FImage* uk, AFSymMatrix* A=0);
00101
00102
00103
00104 virtual AFSymMatrix* getRowA(float tau, FImage* uk, int row, AFSymMatrix* A1=0);
00105 virtual AFSymMatrix* getColA(float tau, FImage* uk, int col, AFSymMatrix* A2=0);
00106
00107 };
00108
00109 #endif
00110
00111