21 #ifndef otbStereoSensorModelToElevationMapFilter_h
22 #define otbStereoSensorModelToElevationMapFilter_h
24 #include "itkImageToImageFilter.h"
25 #include "itkInterpolateImageFunction.h"
27 #include "itkNormalizedCorrelationImageToImageMetric.h"
82 template <
class TInputImage,
class TOutputHeight>
89 typedef itk::ImageToImageFilter<TInputImage, TOutputHeight>
Superclass;
115 void SetMasterInput(
const TInputImage* image);
118 void SetSlaveInput(
const TInputImage* image);
121 const TInputImage* GetMasterInput()
const;
124 const TInputImage* GetSlaveInput()
const;
127 TOutputHeight* GetCorrelationOutput();
132 itkSetMacro(LowerElevation,
double);
137 itkSetMacro(HigherElevation,
double);
140 itkSetMacro(ElevationStep,
double);
145 itkSetMacro(CorrelationThreshold,
double);
150 itkGetMacro(CorrelationThreshold,
double);
155 itkSetMacro(VarianceThreshold,
double);
160 itkGetMacro(VarianceThreshold,
double);
166 itkSetMacro(SubtractInitialElevation,
bool);
172 itkGetMacro(SubtractInitialElevation,
bool);
178 itkBooleanMacro(SubtractInitialElevation);
183 m_Radius.Fill(radius);
196 void ThreadedGenerateData(
const OutputRegionType& outputRegionForThread, itk::ThreadIdType threadId)
override;
199 void GenerateInputRequestedRegion(
void)
override;
202 void BeforeThreadedGenerateData()
override;
216 void operator=(
const Self&) =
delete;
218 inline double Correlation(
const std::vector<double>& master,
const std::vector<double>& slave)
const;
252 #ifndef OTB_MANUAL_INSTANTIATION