00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkGrayscaleFunctionDilateImageFilter_h
00018 #define __itkGrayscaleFunctionDilateImageFilter_h
00019
00020 #include "itkMorphologyImageFilter.h"
00021
00022 namespace itk {
00023
00047 template<class TInputImage, class TOutputImage, class TKernel>
00048 class ITK_EXPORT GrayscaleFunctionDilateImageFilter :
00049 public MorphologyImageFilter<TInputImage, TOutputImage, TKernel>
00050 {
00051 public:
00053 typedef GrayscaleFunctionDilateImageFilter Self;
00054 typedef MorphologyImageFilter<TInputImage, TOutputImage, TKernel>
00055 Superclass;
00056 typedef SmartPointer<Self> Pointer;
00057 typedef SmartPointer<const Self> ConstPointer;
00058
00060 itkNewMacro(Self);
00061
00063 itkTypeMacro(GrayscaleFunctionDilateImageFilter,
00064 MorphologyImageFilter);
00065
00067 typedef typename Superclass::PixelType PixelType;
00068
00070 typedef typename Superclass::KernelIteratorType KernelIteratorType;
00071
00073 typedef typename Superclass::NeighborhoodIteratorType NeighborhoodIteratorType ;
00074
00076 typedef typename Superclass::KernelType KernelType;
00077
00079 typedef typename Superclass::DefaultBoundaryConditionType DefaultBoundaryConditionType;
00080
00082 itkStaticConstMacro(InputImageDimension, unsigned int,
00083 TInputImage::ImageDimension);
00084 itkStaticConstMacro(OutputImageDimension, unsigned int,
00085 TOutputImage::ImageDimension);
00086 itkStaticConstMacro(KernelDimension, unsigned int,
00087 TKernel::NeighborhoodDimension);
00089
00090 #ifdef ITK_USE_CONCEPT_CHECKING
00091
00092 itkConceptMacro(SameDimensionCheck1,
00093 (Concept::SameDimension<InputImageDimension, OutputImageDimension>));
00094 itkConceptMacro(SameDimensionCheck2,
00095 (Concept::SameDimension<InputImageDimension, KernelDimension>));
00096 itkConceptMacro(InputConvertibleToOutputCheck,
00097 (Concept::Convertible<PixelType, typename TOutputImage::PixelType>));
00098 itkConceptMacro(KernelConvertibleToInputCheck,
00099 (Concept::Convertible<typename TKernel::PixelType, PixelType>));
00100 itkConceptMacro(InputAdditiveOperatorsCheck,
00101 (Concept::AdditiveOperators<PixelType>));
00102 itkConceptMacro(InputGreaterThanComparableCheck,
00103 (Concept::GreaterThanComparable<PixelType>));
00104 itkConceptMacro(KernelGreaterThanIntCheck,
00105 (Concept::GreaterThanComparable<typename TKernel::PixelType, int>));
00106
00108 #endif
00109
00110 protected:
00111 GrayscaleFunctionDilateImageFilter();
00112 ~GrayscaleFunctionDilateImageFilter() {};
00113
00121 PixelType Evaluate(const NeighborhoodIteratorType &nit,
00122 const KernelIteratorType kernelBegin,
00123 const KernelIteratorType kernelEnd);
00124
00125 private:
00126 GrayscaleFunctionDilateImageFilter(const Self&);
00127 void operator=(const Self&);
00128
00129
00130
00131 DefaultBoundaryConditionType m_DilateBoundaryCondition;
00132
00133 } ;
00134
00135 }
00136
00137 #ifndef ITK_MANUAL_INSTANTIATION
00138 #include "itkGrayscaleFunctionDilateImageFilter.txx"
00139 #endif
00140
00141 #endif
00142
00143
00144