21 #ifndef otbGeodesicMorphologyDecompositionImageFilter_h
22 #define otbGeodesicMorphologyDecompositionImageFilter_h
25 #include "itkSubtractImageFilter.h"
26 #include "itkOpeningByReconstructionImageFilter.h"
27 #include "itkClosingByReconstructionImageFilter.h"
84 template <
class TInputImage,
class TOutputImage,
class TStructuringElement>
90 typedef itk::ImageToImageFilter<TInputImage, TOutputImage>
Superclass;
105 typedef typename StructuringElementType::RadiusType
RadiusType;
106 typedef itk::OpeningByReconstructionImageFilter<InputImageType, InputImageType, StructuringElementType>
OpeningFilterType;
107 typedef itk::ClosingByReconstructionImageFilter<InputImageType, InputImageType, StructuringElementType>
ClosingFilterType;
108 typedef itk::SubtractImageFilter<InputImageType, InputImageType, OutputImageType>
ConvexFilterType;
109 typedef itk::SubtractImageFilter<OutputImageType, InputImageType, OutputImageType>
ConcaveFilterType;
121 itkGetConstReferenceMacro(Radius,
RadiusType);
137 itkSetMacro(FullyConnected,
bool);
138 itkGetMacro(FullyConnected,
bool);
141 itkSetMacro(PreserveIntensities,
bool);
142 itkGetMacro(PreserveIntensities,
bool);
147 void GenerateData(
void)
override;
158 void PrintSelf(std::ostream& os, itk::Indent indent)
const override;
162 void operator=(
const Self&) =
delete;
192 #ifndef OTB_MANUAL_INSTANTIATION