ITK  6.0.0
Insight Toolkit
itkBinaryReconstructionByErosionImageFilter.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright NumFOCUS
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 * https://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 itkBinaryReconstructionByErosionImageFilter_h
19#define itkBinaryReconstructionByErosionImageFilter_h
20
23#include "itkLabelMap.h"
29
30
31namespace itk
32{
33
55template <typename TInputImage>
56class ITK_TEMPLATE_EXPORT BinaryReconstructionByErosionImageFilter : public ImageToImageFilter<TInputImage, TInputImage>
57{
58public:
59 ITK_DISALLOW_COPY_AND_MOVE(BinaryReconstructionByErosionImageFilter);
60
66
68 using InputImageType = TInputImage;
69 using OutputImageType = TInputImage;
73 using InputImagePixelType = typename InputImageType::PixelType;
77 using OutputImagePixelType = typename OutputImageType::PixelType;
78
80 static constexpr unsigned int InputImageDimension = TInputImage::ImageDimension;
81 static constexpr unsigned int OutputImageDimension = TInputImage::ImageDimension;
82 static constexpr unsigned int ImageDimension = TInputImage::ImageDimension;
83
91
93 itkNewMacro(Self);
94
96 itkOverrideGetNameOfClassMacro(BinaryReconstructionByErosionImageFilter);
97
104 itkSetMacro(FullyConnected, bool);
105 itkGetConstReferenceMacro(FullyConnected, bool);
106 itkBooleanMacro(FullyConnected);
109#ifdef ITK_USE_CONCEPT_CHECKING
110 // Begin concept checking
114 // End concept checking
115#endif
116
121 itkSetMacro(BackgroundValue, OutputImagePixelType);
122 itkGetConstMacro(BackgroundValue, OutputImagePixelType);
129 itkSetMacro(ForegroundValue, OutputImagePixelType);
130 itkGetConstMacro(ForegroundValue, OutputImagePixelType);
143protected:
146 void
147 PrintSelf(std::ostream & os, Indent indent) const override;
148
152 void
154
156 void
157 EnlargeOutputRequestedRegion(DataObject * itkNotUsed(output)) override;
158
161 void
162 GenerateData() override;
163
164private:
165 bool m_FullyConnected{};
166 OutputImagePixelType m_BackgroundValue{};
167 OutputImagePixelType m_ForegroundValue{};
168}; // end of class
169
170} // end namespace itk
171
172#ifndef ITK_MANUAL_INSTANTIATION
173# include "itkBinaryReconstructionByErosionImageFilter.hxx"
174#endif
175
176#endif
A LabelObject with a generic attribute.
remove the objects according to the value of their attribute
Label the connected components in a binary image and produce a collection of label objects.
Implements the BinaryNot logical operator pixel-wise between two images.
itkSetInputMacro(MaskImage, InputImageType)
itkGetInputMacro(MaskImage, InputImageType)
void PrintSelf(std::ostream &os, Indent indent) const override
itkGetInputMacro(MarkerImage, InputImageType)
void EnlargeOutputRequestedRegion(DataObject *) override
itkSetInputMacro(MarkerImage, InputImageType)
~BinaryReconstructionByErosionImageFilter() override=default
Mark the objects at least partially at the same position as the objects in a binary image.
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:50
Mask and image with a LabelMap.
Templated n-dimensional image to store labeled objects.
Definition: itkLabelMap.h:71
Light weight base class for most itk classes.
SmartPointer< const Self > ConstPointer
SmartPointer< Self > Pointer
#define itkConceptMacro(name, concept)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....