OTB  10.0.0
Orfeo Toolbox
otbGeodesicMorphologyIterativeDecompositionImageFilter.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2005-2024 Centre National d'Etudes Spatiales (CNES)
3  *
4  * This file is part of Orfeo Toolbox
5  *
6  * https://www.orfeo-toolbox.org/
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20 
21 #ifndef otbGeodesicMorphologyIterativeDecompositionImageFilter_h
22 #define otbGeodesicMorphologyIterativeDecompositionImageFilter_h
23 
26 
27 namespace otb
28 {
68 template <class TImage, class TStructuringElement>
70 {
71 public:
75  typedef itk::SmartPointer<Self> Pointer;
76  typedef itk::SmartPointer<const Self> ConstPointer;
77 
79  itkNewMacro(Self);
80 
83 
85  itkStaticConstMacro(InputImageDimension, unsigned int, TImage::ImageDimension);
86 
90  typedef typename OutputImageListType::Pointer OutputImageListPointerType;
92 
96  typedef typename InputImageType::Pointer InputImagePointerType;
97  typedef typename InputImageType::ConstPointer InputImageConstPointerType;
98  typedef typename InputImageType::SizeType SizeType;
99  typedef typename InputImageType::ValueType ValueType;
100  typedef typename InputImageType::PixelType PixelType;
101  typedef typename InputImageType::SpacingType SpacingType;
102 
103  typedef TStructuringElement StructuringElementType;
104 
108 
110  itkSetMacro(Step, unsigned int);
111  itkGetMacro(Step, unsigned int);
112  itkSetMacro(InitialValue, unsigned int);
113  itkGetMacro(InitialValue, unsigned int);
114  itkSetMacro(NumberOfIterations, unsigned int);
115  itkGetMacro(NumberOfIterations, unsigned int);
117 
123 
129 
135 
136 protected:
139 
142  {
143  }
144 
146  void GenerateOutputInformation() override;
147 
150 
152  void GenerateData() override;
153 
155  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
156 
157 private:
159  unsigned int m_Step;
160 
162  unsigned int m_InitialValue;
163 
165  unsigned int m_NumberOfIterations;
166 
168  itk::ProgressAccumulator::Pointer m_Progress;
169 };
170 } // End namespace otb
171 
172 #ifndef OTB_MANUAL_INSTANTIATION
174 #endif
175 
176 #endif
This class implements a geodesic morphology based image analysis algorithm.
OutputImageListType * GetOutput(void) override
GeodesicMorphologyDecompositionImageFilter< InputImageType, InputImageType, StructuringElementType > DecompositionFilterType
void PrintSelf(std::ostream &os, itk::Indent indent) const override
Base class for all the filters taking an image input to produce an image list.
Superclass::OutputImagePointerType OutputImagePointerType
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.