00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkScalarAnisotropicDiffusionFunction_h_
00018 #define __itkScalarAnisotropicDiffusionFunction_h_
00019
00020
00021 #include "itkAnisotropicDiffusionFunction.h"
00022
00023 namespace itk {
00024
00038 template <class TImage>
00039 class ITK_EXPORT ScalarAnisotropicDiffusionFunction :
00040 public AnisotropicDiffusionFunction<TImage>
00041 {
00042 public:
00043
00045 typedef ScalarAnisotropicDiffusionFunction Self;
00046 typedef AnisotropicDiffusionFunction<TImage> Superclass;
00047 typedef SmartPointer<Self> Pointer;
00048 typedef SmartPointer<const Self> ConstPointer;
00049
00051 itkStaticConstMacro(ImageDimension, unsigned int,
00052 Superclass::ImageDimension );
00053
00055 typedef typename Superclass::ImageType ImageType;
00056 typedef typename Superclass::PixelType PixelType;
00057 typedef typename Superclass::RadiusType RadiusType;
00058 typedef typename Superclass::NeighborhoodType NeighborhoodType;
00059 typedef typename Superclass::TimeStepType TimeStepType;
00060
00062 itkTypeMacro(ScalarAnisotropicDiffusionFunction,
00063 AnisotropicDiffusionFunction);
00064
00065 virtual void CalculateAverageGradientMagnitudeSquared(TImage *);
00066
00067 protected:
00068 ScalarAnisotropicDiffusionFunction() {}
00069 ~ScalarAnisotropicDiffusionFunction() {}
00070 void PrintSelf(std::ostream& os, Indent indent) const
00071 { Superclass::PrintSelf(os,indent); }
00072 private:
00073 ScalarAnisotropicDiffusionFunction(const Self&);
00074 void operator=(const Self&);
00075 };
00076
00077 }
00078
00079 #ifndef ITK_MANUAL_INSTANTIATION
00080 #include "itkScalarAnisotropicDiffusionFunction.txx"
00081 #endif
00082
00083 #endif
00084