00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkVectorAnisotropicDiffusionFunction_h_
00018 #define __itkVectorAnisotropicDiffusionFunction_h_
00019
00020 #include "itkAnisotropicDiffusionFunction.h"
00021 #include "itkVector.h"
00022
00023 namespace itk {
00024
00049 template <class TImage>
00050 class ITK_EXPORT VectorAnisotropicDiffusionFunction :
00051 public AnisotropicDiffusionFunction<TImage>
00052 {
00053 public:
00055 typedef VectorAnisotropicDiffusionFunction Self;
00056 typedef AnisotropicDiffusionFunction<TImage> Superclass;
00057 typedef SmartPointer<Self> Pointer;
00058 typedef SmartPointer<const Self> ConstPointer;
00059
00061 itkTypeMacro(VectorAnisotropicDiffusionFunction,
00062 AnisotropicDiffusionFunction);
00063
00065 typedef typename Superclass::ImageType ImageType;
00066 typedef typename Superclass::PixelType PixelType;
00067 typedef typename Superclass::TimeStepType TimeStepType;
00068 typedef typename Superclass::RadiusType RadiusType;
00069 typedef typename Superclass::NeighborhoodType NeighborhoodType;
00070
00072 itkStaticConstMacro(ImageDimension, unsigned int,
00073 Superclass::ImageDimension );
00074 itkStaticConstMacro(VectorDimension, unsigned int, PixelType::Dimension );
00075
00077 virtual void CalculateAverageGradientMagnitudeSquared(TImage *);
00078
00079 protected:
00080 VectorAnisotropicDiffusionFunction() {}
00081 ~VectorAnisotropicDiffusionFunction() {}
00082 void PrintSelf(std::ostream& os, Indent indent) const
00083 { Superclass::PrintSelf(os,indent); }
00084 private:
00085 VectorAnisotropicDiffusionFunction(const Self&);
00086 void operator=(const Self&);
00087 };
00088
00089 }
00090
00091 #ifndef ITK_MANUAL_INSTANTIATION
00092 #include "itkVectorAnisotropicDiffusionFunction.txx"
00093 #endif
00094
00095 #endif