OTB  9.0.0
Orfeo Toolbox
otbGeodesicMorphologyIterativeDecompositionImageFilter.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2005-2022 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 
122  OutputImageListType* GetOutput(void) override;
123 
128  OutputImageListType* GetConvexOutput(void);
129 
134  OutputImageListType* GetConcaveOutput(void);
135 
136 protected:
139 
142  {
143  }
144 
146  void GenerateOutputInformation() override;
147 
149  void GenerateInputRequestedRegion() override;
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
otb::GeodesicMorphologyIterativeDecompositionImageFilter::ConstPointer
itk::SmartPointer< const Self > ConstPointer
Definition: otbGeodesicMorphologyIterativeDecompositionImageFilter.h:76
otb::GeodesicMorphologyIterativeDecompositionImageFilter::Self
GeodesicMorphologyIterativeDecompositionImageFilter Self
Definition: otbGeodesicMorphologyIterativeDecompositionImageFilter.h:73
otb::GeodesicMorphologyIterativeDecompositionImageFilter::OutputImageListType
Superclass::OutputImageListType OutputImageListType
Definition: otbGeodesicMorphologyIterativeDecompositionImageFilter.h:89
otb::GeodesicMorphologyIterativeDecompositionImageFilter::ValueType
InputImageType::ValueType ValueType
Definition: otbGeodesicMorphologyIterativeDecompositionImageFilter.h:99
otbImageToImageListFilter.h
otb::GeodesicMorphologyIterativeDecompositionImageFilter::OutputImageListPointerType
OutputImageListType::Pointer OutputImageListPointerType
Definition: otbGeodesicMorphologyIterativeDecompositionImageFilter.h:90
otb::GeodesicMorphologyIterativeDecompositionImageFilter::DecompositionFilterPointerType
DecompositionFilterType::Pointer DecompositionFilterPointerType
Definition: otbGeodesicMorphologyIterativeDecompositionImageFilter.h:107
otb::GeodesicMorphologyIterativeDecompositionImageFilter::m_InitialValue
unsigned int m_InitialValue
Definition: otbGeodesicMorphologyIterativeDecompositionImageFilter.h:162
otb::ImageToImageListFilter< TImage, TImage >::OutputImageListType
Superclass::OutputImageListType OutputImageListType
Definition: otbImageToImageListFilter.h:64
otb::GeodesicMorphologyIterativeDecompositionImageFilter::Pointer
itk::SmartPointer< Self > Pointer
Definition: otbGeodesicMorphologyIterativeDecompositionImageFilter.h:75
otb::GeodesicMorphologyIterativeDecompositionImageFilter::m_NumberOfIterations
unsigned int m_NumberOfIterations
Definition: otbGeodesicMorphologyIterativeDecompositionImageFilter.h:165
otb
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.
Definition: otbJoinContainer.h:32
otb::ImageToImageListFilter< TImage, TImage >::OutputImagePointerType
Superclass::OutputImagePointerType OutputImagePointerType
Definition: otbImageToImageListFilter.h:65
otb::GeodesicMorphologyDecompositionImageFilter::Pointer
itk::SmartPointer< Self > Pointer
Definition: otbGeodesicMorphologyDecompositionImageFilter.h:91
otb::GeodesicMorphologyIterativeDecompositionImageFilter::SizeType
InputImageType::SizeType SizeType
Definition: otbGeodesicMorphologyIterativeDecompositionImageFilter.h:98
otb::ImageToImageListFilter< TImage, TImage >::InputImageRegionType
InputImageType::RegionType InputImageRegionType
Definition: otbImageToImageListFilter.h:57
otb::GeodesicMorphologyIterativeDecompositionImageFilter::~GeodesicMorphologyIterativeDecompositionImageFilter
~GeodesicMorphologyIterativeDecompositionImageFilter() override
Definition: otbGeodesicMorphologyIterativeDecompositionImageFilter.h:141
otb::GeodesicMorphologyIterativeDecompositionImageFilter::Superclass
ImageToImageListFilter< TImage, TImage > Superclass
Definition: otbGeodesicMorphologyIterativeDecompositionImageFilter.h:74
otb::GeodesicMorphologyIterativeDecompositionImageFilter::m_Step
unsigned int m_Step
Definition: otbGeodesicMorphologyIterativeDecompositionImageFilter.h:159
otb::GeodesicMorphologyIterativeDecompositionImageFilter::m_Progress
itk::ProgressAccumulator::Pointer m_Progress
Definition: otbGeodesicMorphologyIterativeDecompositionImageFilter.h:168
otbGeodesicMorphologyIterativeDecompositionImageFilter.hxx
otb::GeodesicMorphologyIterativeDecompositionImageFilter::StructuringElementType
TStructuringElement StructuringElementType
Definition: otbGeodesicMorphologyIterativeDecompositionImageFilter.h:103
otb::GeodesicMorphologyIterativeDecompositionImageFilter::OutputImagePointerType
Superclass::OutputImagePointerType OutputImagePointerType
Definition: otbGeodesicMorphologyIterativeDecompositionImageFilter.h:91
otb::GeodesicMorphologyIterativeDecompositionImageFilter::DecompositionFilterType
GeodesicMorphologyDecompositionImageFilter< InputImageType, InputImageType, StructuringElementType > DecompositionFilterType
Definition: otbGeodesicMorphologyIterativeDecompositionImageFilter.h:106
otb::GeodesicMorphologyIterativeDecompositionImageFilter::InputImageRegionType
Superclass::InputImageRegionType InputImageRegionType
Definition: otbGeodesicMorphologyIterativeDecompositionImageFilter.h:95
otb::GeodesicMorphologyIterativeDecompositionImageFilter::PixelType
InputImageType::PixelType PixelType
Definition: otbGeodesicMorphologyIterativeDecompositionImageFilter.h:100
otb::ImageToImageListFilter< TImage, TImage >::OutputImageType
Superclass::OutputImageType OutputImageType
Definition: otbImageToImageListFilter.h:63
otb::GeodesicMorphologyIterativeDecompositionImageFilter
This class recursively apply geodesic decomposition.
Definition: otbGeodesicMorphologyIterativeDecompositionImageFilter.h:69
otb::GeodesicMorphologyIterativeDecompositionImageFilter::InputImageType
Superclass::InputImageType InputImageType
Definition: otbGeodesicMorphologyIterativeDecompositionImageFilter.h:94
otb::GeodesicMorphologyIterativeDecompositionImageFilter::SpacingType
InputImageType::SpacingType SpacingType
Definition: otbGeodesicMorphologyIterativeDecompositionImageFilter.h:101
otb::ImageToImageListFilter< TImage, TImage >::InputImageType
TImage InputImageType
Definition: otbImageToImageListFilter.h:52
otbGeodesicMorphologyDecompositionImageFilter.h
otb::GeodesicMorphologyIterativeDecompositionImageFilter::InputImageConstPointerType
InputImageType::ConstPointer InputImageConstPointerType
Definition: otbGeodesicMorphologyIterativeDecompositionImageFilter.h:97
otb::ImageToImageListFilter
Base class for all the filters taking an image input to produce an image list.
Definition: otbImageToImageListFilter.h:39
otb::GeodesicMorphologyIterativeDecompositionImageFilter::OutputImageType
Superclass::OutputImageType OutputImageType
Definition: otbGeodesicMorphologyIterativeDecompositionImageFilter.h:88
otb::GeodesicMorphologyIterativeDecompositionImageFilter::InputImagePointerType
InputImageType::Pointer InputImagePointerType
Definition: otbGeodesicMorphologyIterativeDecompositionImageFilter.h:96
otb::GeodesicMorphologyDecompositionImageFilter
This class implements a geodesic morphology based image analysis algorithm.
Definition: otbGeodesicMorphologyDecompositionImageFilter.h:85