00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkBinaryErodeImageFilter_h
00018 #define __itkBinaryErodeImageFilter_h
00019
00020 #include "itkMorphologyImageFilter.h"
00021
00022 namespace itk {
00023
00058 template<class TInputImage, class TOutputImage, class TKernel>
00059 class ITK_EXPORT BinaryErodeImageFilter :
00060 public MorphologyImageFilter<TInputImage, TOutputImage, TKernel>
00061 {
00062 public:
00064 typedef BinaryErodeImageFilter Self;
00065 typedef MorphologyImageFilter<TInputImage, TOutputImage, TKernel>
00066 Superclass;
00067 typedef SmartPointer<Self> Pointer;
00068 typedef SmartPointer<const Self> ConstPointer;
00069
00071 itkNewMacro(Self);
00072
00074 itkTypeMacro(BinaryErodeImageFilter, MorphologyImageFilter);
00075
00077 typedef typename Superclass::PixelType PixelType;
00078
00080 typedef ConstNeighborhoodIterator<TInputImage> NeighborhoodIteratorType ;
00081 typedef ConstSmartNeighborhoodIterator<TInputImage>
00082 SmartNeighborhoodIteratorType ;
00083
00085 typedef TKernel KernelType;
00086
00088 typedef typename KernelType::ConstIterator KernelIteratorType ;
00089
00092 itkSetMacro(ErodeValue, PixelType);
00093
00096 itkGetMacro(ErodeValue, PixelType);
00097
00098 protected:
00099 BinaryErodeImageFilter();
00100 ~BinaryErodeImageFilter() {};
00101 void PrintSelf(std::ostream& os, Indent indent) const;
00102
00110 PixelType Evaluate(const NeighborhoodIteratorType &nit,
00111 const KernelType &kernel);
00112
00120 PixelType Evaluate(const SmartNeighborhoodIteratorType &nit,
00121 const KernelType &kernel);
00122
00123 private:
00124 BinaryErodeImageFilter(const Self&);
00125 void operator=(const Self&);
00126
00127 PixelType m_ErodeValue;
00128
00129 } ;
00130
00131 }
00132
00133 #ifndef ITK_MANUAL_INSTANTIATION
00134 #include "itkBinaryErodeImageFilter.txx"
00135 #endif
00136
00137 #endif
00138
00139