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 {
44 template< typename TInputImage,
45 bool doDilate,
46 typename TOutputImage = TInputImage >
48  public ImageToImageFilter< TInputImage, TOutputImage >
49 {
50 
51 public:
52 
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 
80  typedef typename itk::FixedArray< ScalarRealType, TInputImage::ImageDimension > RadiusType;
81 
83  itkStaticConstMacro( ImageDimension, unsigned int,
84  TInputImage::ImageDimension );
85  itkStaticConstMacro( OutputImageDimension, unsigned int,
86  TOutputImage::ImageDimension );
87  itkStaticConstMacro( InputImageDimension, unsigned int,
88  TInputImage::ImageDimension );
89 
90  typedef typename OutputImageType::RegionType OutputImageRegionType;
95  typedef typename NumericTraits< PixelType >::FloatType InternalRealType;
96  //typedef typename Image<InternalRealType, itkGetStaticConstMacro(ImageDimension) > RealImageType;
97 
98  // set all of the scales the same
99  void SetScale( ScalarRealType scale );
100 
101  itkSetMacro( Scale, RadiusType );
102  itkGetConstReferenceMacro( Scale, RadiusType );
103 
108  itkSetMacro( UseImageSpacing, bool );
109  itkGetConstReferenceMacro( UseImageSpacing, bool );
110  itkBooleanMacro( UseImageSpacing );
113 #ifdef ITK_USE_CONCEPT_CHECKING
114 
115  itkConceptMacro( SameDimension,
116  ( Concept::SameDimension< itkGetStaticConstMacro( InputImageDimension ), itkGetStaticConstMacro( OutputImageDimension ) > ) );
117 
118  itkConceptMacro( Comparable,
119  ( Concept::Comparable< PixelType > ) );
120 
122 #endif
123 
124 protected:
125 
128  void PrintSelf( std::ostream & os, Indent indent ) const;
129 
131  void GenerateData( void );
132 
133  int SplitRequestedRegion( int i, int num, OutputImageRegionType & splitRegion );
134 
135  void ThreadedGenerateData( const OutputImageRegionType & outputRegionForThread, ThreadIdType threadId );
136 
137 // virtual void GenerateInputRequestedRegion() throw(InvalidRequestedRegionError);
138 // Override since the filter produces the entire dataset.
139  void EnlargeOutputRequestedRegion( DataObject * output );
140 
142 
143 private:
144 
145  ParabolicErodeDilateImageFilter( const Self & ); // purposely not implemented
146  void operator=( const Self & ); // purposely not implemented
147 
149  typename TInputImage::PixelType m_Extreme;
150 
153 };
154 
155 } // end namespace itk
156 
157 #ifndef ITK_MANUAL_INSTANTIATION
158 #include "itkParabolicErodeDilateImageFilter.hxx"
159 #endif
160 
161 #endif
NumericTraits< PixelType >::ScalarRealType ScalarRealType
void PrintSelf(std::ostream &os, Indent indent) const
Parent class for morphological operations with parabolic structuring elements.
void ThreadedGenerateData(const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId)
void SetScale(ScalarRealType scale)
int SplitRequestedRegion(int i, int num, OutputImageRegionType &splitRegion)
itkStaticConstMacro(ImageDimension, unsigned int, TInputImage::ImageDimension)
NumericTraits< PixelType >::FloatType InternalRealType
ImageToImageFilter< TInputImage, TOutputImage > Superclass
void EnlargeOutputRequestedRegion(DataObject *output)
NumericTraits< PixelType >::RealType RealType
itk::FixedArray< ScalarRealType, TInputImage::ImageDimension > RadiusType


Generated on 27-04-2014 for elastix by doxygen 1.8.6 elastix logo