22 #ifndef otbDEMCaracteristicsExtractor_h
23 #define otbDEMCaracteristicsExtractor_h
27 #include "itkUnaryFunctorImageFilter.h"
28 #include "itkGradientMagnitudeImageFilter.h"
29 #include "itkGradientRecursiveGaussianImageFilter.h"
30 #include "itkAtan2ImageFilter.h"
31 #include "itkAtanImageFilter.h"
33 #include "itkMultiplyImageFilter.h"
34 #include "itkAcosImageFilter.h"
35 #include "itkCosImageFilter.h"
36 #include "itkSinImageFilter.h"
37 #include "itkShiftScaleImageFilter.h"
38 #include "itkAddImageFilter.h"
40 #include "itkGradientImageFilter.h"
56 template <
class TInputImage,
class TOutputImage>
61 itkStaticConstMacro(InputImageDimension,
unsigned int, TInputImage::ImageDimension);
62 itkStaticConstMacro(OutputImageDimension,
unsigned int, TOutputImage::ImageDimension);
71 typedef itk::ImageToImageFilter<TInputImage, OutputImageType>
Superclass;
92 typedef typename GradientRecursiveGaussianImageFilterType::OutputImageType
tutuType;
93 typedef itk::NthElementImageAdaptor<tutuType, InputInternalPixelType>
AdaptorType;
94 typedef itk::Atan2ImageFilter<AdaptorType, AdaptorType, OutputImageType>
Atan2FilterType;
95 typedef itk::AtanImageFilter<OutputImageType, OutputImageType>
AtanFilterType;
109 return static_cast<OutputImageType*
>(this->itk::ProcessObject::GetOutput(0));
115 return static_cast<OutputImageType*
>(this->itk::ProcessObject::GetOutput(1));
121 return static_cast<OutputImageType*
>(this->itk::ProcessObject::GetOutput(2));
127 return static_cast<OutputImageType*
>(this->itk::ProcessObject::GetOutput(3));
133 itkSetMacro(SolarAngle,
double);
134 itkGetConstMacro(SolarAngle,
double);
137 itkSetMacro(SolarAzimut,
double);
138 itkGetConstMacro(SolarAzimut,
double);
141 itkSetMacro(ViewAngle,
double);
142 itkGetConstMacro(ViewAngle,
double);
145 itkSetMacro(ViewAzimut,
double);
146 itkGetConstMacro(ViewAzimut,
double);
153 void PrintSelf(std::ostream& os, itk::Indent indent)
const override;
155 void GenerateData()
override;
175 #ifndef OTB_MANUAL_INSTANTIATION