go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkParabolicErodeDilateImageFilter.h
Go to the documentation of this file.
1 #ifndef __itkParabolicErodeDilateImageFilter_h
2 #define __itkParabolicErodeDilateImageFilter_h
3 
4 #include "itkImageToImageFilter.h"
5 #include "itkNumericTraits.h"
6 #include "itkProgressReporter.h"
7 
8 namespace itk
9 {
45 template <typename TInputImage,
46  bool doDilate,
47  typename TOutputImage= TInputImage >
49  public ImageToImageFilter<TInputImage,TOutputImage>
50 {
51 
52 public:
55  typedef ImageToImageFilter<TInputImage,TOutputImage> Superclass;
56  typedef SmartPointer<Self> Pointer;
57  typedef SmartPointer<const Self> ConstPointer;
58 
60  itkNewMacro(Self);
61 
63  itkTypeMacro(ParabolicErodeDilateImageFilter, ImageToImageFilter);
64 
66  typedef TInputImage InputImageType;
67  typedef TOutputImage OutputImageType;
68  typedef typename TInputImage::PixelType PixelType;
69  typedef typename NumericTraits<PixelType>::RealType RealType;
70  typedef typename NumericTraits<PixelType>::ScalarRealType ScalarRealType;
71  typedef typename TOutputImage::PixelType OutputPixelType;
72 
74  typedef typename TInputImage::Pointer InputImagePointer;
75  typedef typename TInputImage::ConstPointer InputImageConstPointer;
76  typedef typename TInputImage::SizeType InputSizeType;
77  typedef typename TOutputImage::SizeType OutputSizeType;
78 
79 
81  typedef typename itk::FixedArray<ScalarRealType, TInputImage::ImageDimension> RadiusType;
82 
84  itkStaticConstMacro(ImageDimension, unsigned int,
85  TInputImage::ImageDimension);
86  itkStaticConstMacro(OutputImageDimension, unsigned int,
87  TOutputImage::ImageDimension);
88  itkStaticConstMacro(InputImageDimension, unsigned int,
89  TInputImage::ImageDimension);
90 
91 
92  typedef typename OutputImageType::RegionType OutputImageRegionType;
97  typedef typename NumericTraits< PixelType >::FloatType InternalRealType;
98  //typedef typename Image<InternalRealType, itkGetStaticConstMacro(ImageDimension) > RealImageType;
99 
100  // set all of the scales the same
101  void SetScale(ScalarRealType scale);
102  itkSetMacro(Scale, RadiusType);
103  itkGetConstReferenceMacro(Scale, RadiusType);
104 
109  itkSetMacro(UseImageSpacing, bool);
110  itkGetConstReferenceMacro(UseImageSpacing, bool);
111  itkBooleanMacro(UseImageSpacing);
114 #ifdef ITK_USE_CONCEPT_CHECKING
115 
116  itkConceptMacro(SameDimension,
117  (Concept::SameDimension<itkGetStaticConstMacro(InputImageDimension),itkGetStaticConstMacro(OutputImageDimension)>));
118 
119  itkConceptMacro(Comparable,
120  (Concept::Comparable<PixelType>));
121 
123 #endif
124 
125 protected:
128  void PrintSelf(std::ostream& os, Indent indent) const;
129 
131  void GenerateData( void );
132  int SplitRequestedRegion(int i, int num, OutputImageRegionType& splitRegion);
133  void ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread, ThreadIdType threadId );
134 
135 // virtual void GenerateInputRequestedRegion() throw(InvalidRequestedRegionError);
136  // Override since the filter produces the entire dataset.
137  void EnlargeOutputRequestedRegion(DataObject *output);
138 
140 
141 private:
142  ParabolicErodeDilateImageFilter(const Self&); //purposely not implemented
143  void operator=(const Self&); //purposely not implemented
145  typename TInputImage::PixelType m_Extreme;
146 
149 };
150 
151 } // end namespace itk
152 
153 #ifndef ITK_MANUAL_INSTANTIATION
154 #include "itkParabolicErodeDilateImageFilter.txx"
155 #endif
156 
157 
158 #endif
Parent class for morphological operations with parabolic structuring elements.
NumericTraits< PixelType >::ScalarRealType ScalarRealType
ImageToImageFilter< TInputImage, TOutputImage > Superclass
NumericTraits< PixelType >::FloatType InternalRealType
itk::FixedArray< ScalarRealType, TInputImage::ImageDimension > RadiusType
NumericTraits< PixelType >::RealType RealType


Generated on 04-01-2014 for elastix by doxygen 1.8.5 elastix logo