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
00059
template<
class TInputImage,
class TOutputImage,
class TKernel>
00060 class ITK_EXPORT BinaryErodeImageFilter :
00061
public MorphologyImageFilter<TInputImage, TOutputImage, TKernel>
00062 {
00063
public:
00065
typedef BinaryErodeImageFilter
Self;
00066 typedef MorphologyImageFilter<TInputImage, TOutputImage, TKernel>
00067
Superclass;
00068 typedef SmartPointer<Self> Pointer;
00069 typedef SmartPointer<const Self> ConstPointer;
00070
00072
itkNewMacro(
Self);
00073
00075
itkTypeMacro(BinaryErodeImageFilter,
MorphologyImageFilter);
00076
00078
typedef typename Superclass::PixelType
PixelType;
00079
00081
typedef ConstNeighborhoodIterator<TInputImage> NeighborhoodIteratorType ;
00082
00084
typedef TKernel
KernelType;
00085
00087
typedef typename KernelType::ConstIterator
KernelIteratorType ;
00088
00091
itkSetMacro(ErodeValue,
PixelType);
00092
00095
itkGetMacro(ErodeValue,
PixelType);
00096
00097
protected:
00098 BinaryErodeImageFilter();
00099 ~BinaryErodeImageFilter() {};
00100 void PrintSelf(std::ostream& os,
Indent indent)
const;
00101
00109
PixelType Evaluate(
const NeighborhoodIteratorType &nit,
00110
const KernelIteratorType kernelBegin,
00111
const KernelIteratorType kernelEnd);
00112
00115
virtual void BeforeThreadedGenerateData();
00116
00117
private:
00118 BinaryErodeImageFilter(
const Self&);
00119
void operator=(
const Self&);
00120
00121
PixelType m_ErodeValue;
00122
00123
00124
00125
bool m_KernelCenterPixelOn;
00126
00127 } ;
00128
00129 }
00130
00131
#ifndef ITK_MANUAL_INSTANTIATION
00132
#include "itkBinaryErodeImageFilter.txx"
00133
#endif
00134
00135
#endif
00136
00137