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:
00044 typedef ScalarAnisotropicDiffusionFunction Self;
00045 typedef AnisotropicDiffusionFunction<TImage> Superclass;
00046 typedef SmartPointer<Self> Pointer;
00047 typedef SmartPointer<const Self> ConstPointer;
00048
00050 itkStaticConstMacro(ImageDimension, unsigned int,
00051 Superclass::ImageDimension );
00052
00054 typedef typename Superclass::ImageType ImageType;
00055 typedef typename Superclass::PixelType PixelType;
00056 typedef typename Superclass::RadiusType RadiusType;
00057 typedef typename Superclass::NeighborhoodType NeighborhoodType;
00058 typedef typename Superclass::TimeStepType TimeStepType;
00059
00061 itkTypeMacro(ScalarAnisotropicDiffusionFunction,
00062 AnisotropicDiffusionFunction);
00063
00064 virtual void CalculateAverageGradientMagnitudeSquared(TImage *);
00065
00066 protected:
00067 ScalarAnisotropicDiffusionFunction() {}
00068 ~ScalarAnisotropicDiffusionFunction() {}
00069 void PrintSelf(std::ostream& os, Indent indent) const
00070 { Superclass::PrintSelf(os,indent); }
00071 private:
00072 ScalarAnisotropicDiffusionFunction(const Self&);
00073 void operator=(const Self&);
00074 };
00075
00076 }
00077
00078 #ifndef ITK_MANUAL_INSTANTIATION
00079 #include "itkScalarAnisotropicDiffusionFunction.txx"
00080 #endif
00081
00082 #endif