00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkVotingBinaryIterativeHoleFillingImageFilter_h
00018 #define __itkVotingBinaryIterativeHoleFillingImageFilter_h
00019
00020 #include "itkVotingBinaryHoleFillingImageFilter.h"
00021
00022 namespace itk
00023 {
00052 template <class TImage >
00053 class ITK_EXPORT VotingBinaryIterativeHoleFillingImageFilter :
00054 public ImageToImageFilter< TImage, TImage >
00055 {
00056 public:
00057
00059 typedef TImage InputImageType;
00060 typedef TImage OutputImageType;
00061
00063 typedef VotingBinaryIterativeHoleFillingImageFilter Self;
00064 typedef ImageToImageFilter< InputImageType, OutputImageType> Superclass;
00065 typedef SmartPointer<Self> Pointer;
00066 typedef SmartPointer<const Self> ConstPointer;
00067
00069 itkNewMacro(Self);
00070
00072 itkTypeMacro(VotingBinaryIterativeHoleFillingImageFilter, ImageToImageFilter);
00073
00075 typedef VotingBinaryHoleFillingImageFilter<
00076 InputImageType,
00077 OutputImageType
00078 > VotingFilterType;
00079
00081 typedef typename InputImageType::PixelType InputPixelType;
00082 typedef typename OutputImageType::PixelType OutputPixelType;
00083
00084 typedef typename InputImageType::RegionType InputImageRegionType;
00085 typedef typename OutputImageType::RegionType OutputImageRegionType;
00086
00087 typedef typename InputImageType::SizeType InputSizeType;
00088
00089
00093 itkGetConstReferenceMacro(MaximumNumberOfIterations, unsigned int);
00094 itkSetMacro(MaximumNumberOfIterations, unsigned int);
00095
00099 itkGetConstReferenceMacro(CurrentNumberOfIterations, unsigned int);
00100 itkSetMacro(CurrentNumberOfIterations, unsigned int);
00101
00102
00104 itkSetMacro(Radius, InputSizeType);
00105
00107 itkGetConstReferenceMacro(Radius, InputSizeType);
00108
00111 itkSetMacro(BackgroundValue, InputPixelType);
00112 itkSetMacro(ForegroundValue, InputPixelType);
00113
00116 itkGetConstReferenceMacro(BackgroundValue, InputPixelType);
00117 itkGetConstReferenceMacro(ForegroundValue, InputPixelType);
00118
00119
00126 itkGetConstReferenceMacro( MajorityThreshold, unsigned int );
00127 itkSetMacro( MajorityThreshold, unsigned int );
00128
00129
00131 itkGetConstReferenceMacro( NumberOfPixelsChanged, unsigned int );
00132
00133 protected:
00134 VotingBinaryIterativeHoleFillingImageFilter();
00135 virtual ~VotingBinaryIterativeHoleFillingImageFilter() {}
00136 void PrintSelf(std::ostream& os, Indent indent) const;
00137
00141 void GenerateData();
00142
00143
00144 private:
00145 VotingBinaryIterativeHoleFillingImageFilter(const Self&);
00146 void operator=(const Self&);
00147
00148 InputSizeType m_Radius;
00149
00150 InputPixelType m_ForegroundValue;
00151 InputPixelType m_BackgroundValue;
00152
00153 unsigned int m_MaximumNumberOfIterations;
00154 unsigned int m_CurrentNumberOfIterations;
00155 unsigned int m_MajorityThreshold;
00156 unsigned int m_NumberOfPixelsChanged;
00157
00158 };
00159
00160 }
00161
00162 #ifndef ITK_MANUAL_INSTANTIATION
00163 #include "itkVotingBinaryIterativeHoleFillingImageFilter.txx"
00164 #endif
00165
00166 #endif