ITK  4.12.0
Insight Segmentation and Registration Toolkit
itkOpeningByReconstructionImageFilter.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 itkOpeningByReconstructionImageFilter_h
19 #define itkOpeningByReconstructionImageFilter_h
20 
21 #include "itkImageToImageFilter.h"
22 
23 namespace itk
24 {
54 template< typename TInputImage, typename TOutputImage, typename TKernel >
55 class ITK_TEMPLATE_EXPORT OpeningByReconstructionImageFilter:
56  public ImageToImageFilter< TInputImage, TOutputImage >
57 {
58 public:
64 
66  typedef TInputImage InputImageType;
69  typedef typename InputImageType::RegionType InputImageRegionType;
70  typedef typename InputImageType::PixelType InputImagePixelType;
71  typedef TOutputImage OutputImageType;
74  typedef typename OutputImageType::RegionType OutputImageRegionType;
75  typedef typename OutputImageType::PixelType OutputImagePixelType;
76 
78  typedef TKernel KernelType;
79 
81  itkStaticConstMacro(InputImageDimension, unsigned int,
82  TInputImage::ImageDimension);
83  itkStaticConstMacro(OutputImageDimension, unsigned int,
84  TOutputImage::ImageDimension);
86 
88  itkNewMacro(Self);
89 
93 
95  itkSetMacro(Kernel, KernelType);
96 
98  itkGetConstReferenceMacro(Kernel, KernelType);
99 
106  itkSetMacro(FullyConnected, bool);
107  itkGetConstReferenceMacro(FullyConnected, bool);
108  itkBooleanMacro(FullyConnected);
110 
115  itkSetMacro(PreserveIntensities, bool);
116  itkGetConstReferenceMacro(PreserveIntensities, bool);
117  itkBooleanMacro(PreserveIntensities);
119 
120 #ifdef ITK_USE_CONCEPT_CHECKING
121  // Begin concept checking
122  itkConceptMacro( InputEqualityComparableCheck,
124  // End concept checking
125 #endif
126 
127 protected:
130  void PrintSelf(std::ostream & os, Indent indent) const ITK_OVERRIDE;
131 
135  void GenerateInputRequestedRegion() ITK_OVERRIDE;
136 
138  void EnlargeOutputRequestedRegion( DataObject *itkNotUsed(output) ) ITK_OVERRIDE;
139 
140  void GenerateData() ITK_OVERRIDE;
141 
142 private:
143  ITK_DISALLOW_COPY_AND_ASSIGN(OpeningByReconstructionImageFilter);
144 
146  KernelType m_Kernel;
147  bool m_FullyConnected;
148  bool m_PreserveIntensities;
149 }; // end of class
150 } // end namespace itk
151 
152 #ifndef ITK_MANUAL_INSTANTIATION
153 #include "itkOpeningByReconstructionImageFilter.hxx"
154 #endif
155 
156 #endif
virtual void PrintSelf(std::ostream &os, Indent indent) const override
Base class for all process objects that output image data.
SmartPointer< Self > Pointer
ImageToImageFilter< TInputImage, TOutputImage > Superclass
SmartPointer< const Self > ConstPointer
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)