ITK  4.12.0
Insight Segmentation and Registration Toolkit
itkGrayscaleGeodesicDilateImageFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 #ifndef itkGrayscaleGeodesicDilateImageFilter_h
19 #define itkGrayscaleGeodesicDilateImageFilter_h
20 
21 #include "itkImageToImageFilter.h"
22 
23 namespace itk
24 {
63 template< typename TInputImage, typename TOutputImage >
64 class ITK_TEMPLATE_EXPORT GrayscaleGeodesicDilateImageFilter:
65  public ImageToImageFilter< TInputImage, TOutputImage >
66 {
67 public:
73 
75  typedef TInputImage MarkerImageType;
78  typedef typename MarkerImageType::RegionType MarkerImageRegionType;
79  typedef typename MarkerImageType::PixelType MarkerImagePixelType;
80  typedef TInputImage MaskImageType;
83  typedef typename MaskImageType::RegionType MaskImageRegionType;
84  typedef typename MaskImageType::PixelType MaskImagePixelType;
85  typedef TOutputImage OutputImageType;
88  typedef typename OutputImageType::RegionType OutputImageRegionType;
89  typedef typename OutputImageType::PixelType OutputImagePixelType;
90 
92  itkStaticConstMacro(MarkerImageDimension, unsigned int,
93  TInputImage::ImageDimension);
94  itkStaticConstMacro(MaskImageDimension, unsigned int,
95  TInputImage::ImageDimension);
96  itkStaticConstMacro(OutputImageDimension, unsigned int,
97  TOutputImage::ImageDimension);
99 
101  itkNewMacro(Self);
102 
106 
110  void SetMarkerImage(const MarkerImageType *);
111 
112  const MarkerImageType * GetMarkerImage();
113 
117  void SetMaskImage(const MaskImageType *);
118 
119  const MaskImageType * GetMaskImage();
120 
124  itkSetMacro(RunOneIteration, bool);
125  itkGetConstMacro(RunOneIteration, bool);
126  itkBooleanMacro(RunOneIteration);
128 
131  itkGetConstMacro(NumberOfIterationsUsed, unsigned long);
132 
139  itkSetMacro(FullyConnected, bool);
140  itkGetConstReferenceMacro(FullyConnected, bool);
141  itkBooleanMacro(FullyConnected);
143 
144 #ifdef ITK_USE_CONCEPT_CHECKING
145  // Begin concept checking
146  itkConceptMacro( SameDimensionCheck,
148  itkConceptMacro( InputComparableCheck,
150  itkConceptMacro( InputConvertibleToOutputCheck,
152  // End concept checking
153 #endif
154 
155 protected:
158  void PrintSelf(std::ostream & os, Indent indent) const ITK_OVERRIDE;
159 
166  void GenerateInputRequestedRegion() ITK_OVERRIDE;
167 
172  void EnlargeOutputRequestedRegion( DataObject *itkNotUsed(output) ) ITK_OVERRIDE;
173 
180  void GenerateData() ITK_OVERRIDE;
181 
186  void ThreadedGenerateData(const OutputImageRegionType &
187  outputRegionForThread,
188  ThreadIdType threadId) ITK_OVERRIDE;
189 
190 private:
191  ITK_DISALLOW_COPY_AND_ASSIGN(GrayscaleGeodesicDilateImageFilter);
192 
193  bool m_RunOneIteration;
194  unsigned long m_NumberOfIterationsUsed;
195  bool m_FullyConnected;
196 }; // end of class
197 } // end namespace itk
198 
199 #ifndef ITK_MANUAL_INSTANTIATION
200 #include "itkGrayscaleGeodesicDilateImageFilter.hxx"
201 #endif
202 
203 #endif
virtual void PrintSelf(std::ostream &os, Indent indent) const override
Base class for all process objects that output image data.
ImageToImageFilter< TInputImage, TOutputImage > Superclass
SmartPointer< Self > Pointer
SmartPointer< const Self > ConstPointer
unsigned int ThreadIdType
Definition: itkIntTypes.h:159
Base class for all data objects in ITK.
Base class for filters that take an image as input and produce an image as output.
Control indentation during Print() invocation.
Definition: itkIndent.h:49
#define itkConceptMacro(name, concept)