OTB  7.3.0
Orfeo Toolbox
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight > Class Template Reference

#include <otbStereoSensorModelToElevationMapFilter.h>

+ Inheritance diagram for otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >:
+ Collaboration diagram for otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >:

Public Types

typedef itk::SmartPointer< const SelfConstPointer
 
typedef itk::NormalizedCorrelationImageToImageMetric< TInputImage, TInputImage > CorrelationMetricType
 
typedef GenericRSTransform< double, 3, 3 > GenericRSTransform3DType
 
typedef GenericRSTransform GenericRSTransformType
 
typedef OutputImageType::PixelType HeightType
 
typedef TInputImage InputImageType
 
typedef InputImageType::PixelType InputPixelType
 
typedef InterpolatorType::Pointer InterpolatorPointerType
 
typedef itk::InterpolateImageFunction< TInputImage, double > InterpolatorType
 
typedef TOutputHeight OutputImageType
 
typedef OutputImageType::PointType OutputPointType
 
typedef OutputImageType::RegionType OutputRegionType
 
typedef itk::SmartPointer< SelfPointer
 
typedef InputImageType::SizeType RadiusType
 
typedef StereoSensorModelToElevationFilter Self
 
typedef itk::ImageToImageFilter< TInputImage, TOutputHeight > Superclass
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
TOutputHeight * GetCorrelationOutput ()
 
virtual double GetCorrelationThreshold ()
 
const TInputImage * GetMasterInput () const
 
virtual const char * GetNameOfClass () const
 
const TInputImage * GetSlaveInput () const
 
virtual bool GetSubtractInitialElevation ()
 
virtual double GetVarianceThreshold ()
 
virtual void SetCorrelationThreshold (double _arg)
 
virtual void SetElevationStep (double _arg)
 
virtual void SetHigherElevation (double _arg)
 
virtual void SetLowerElevation (double _arg)
 
void SetMasterInput (const TInputImage *image)
 
void SetSlaveInput (const TInputImage *image)
 
virtual void SetSubtractInitialElevation (bool _arg)
 
virtual void SetVarianceThreshold (double _arg)
 
virtual void SubtractInitialElevationOff ()
 
virtual void SubtractInitialElevationOn ()
 
void SetRadius (unsigned int radius)
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

void BeforeThreadedGenerateData () override
 
void GenerateInputRequestedRegion (void) override
 
 StereoSensorModelToElevationFilter ()
 
void ThreadedGenerateData (const OutputRegionType &outputRegionForThread, itk::ThreadIdType threadId) override
 
void VerifyInputInformation () override
 
 ~StereoSensorModelToElevationFilter () override
 

Private Member Functions

double Correlation (const std::vector< double > &master, const std::vector< double > &slave) const
 
void operator= (const Self &)=delete
 
 StereoSensorModelToElevationFilter (const Self &)=delete
 

Private Attributes

double m_CorrelationThreshold
 
double m_ElevationStep
 
double m_HigherElevation
 
InterpolatorPointerType m_Interpolator
 
double m_LowerElevation
 
GenericRSTransform3DType::Pointer m_MasterToSlave
 
RadiusType m_Radius
 
bool m_SubtractInitialElevation
 
double m_VarianceThreshold
 

Detailed Description

template<class TInputImage, class TOutputHeight>
class otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >

Using sensor models to perform correlation along epipolars.

This filter uses a pair of stereo images along-track to build an elevation map.

Images are not resampled to epipolar geometry. Instead, for each patch of the master image, corresponding patches are interpolated in the slave image according to a range of candidate elevations. Colocalisation is achieved through the GenericRSTransform for each pixel of the patch, which means the interpolated path follows the warping between the two images (it is not necesseraly aligned with slave image boundary). The elevation achieving the higher correlation is kept in the final elevation map.

Setting-up the elevation exploration range is simple : the LowerElevation and HigherElevation parameters allows setting the exploration range offsets with respect to the local elevation, and the ElevationStep parameter allows setting the step between candidate elevation. The local elevation can either be constant over the whole scene, or interpolated in a Digital Elevation Model. The latter allows accounting for highly varying elevation in large scene, and allows reducing the elevation exploration range. Please note that one can also use a geoid file along with the DEM.

Correlation parameters are as follows :

Definition at line 83 of file otbStereoSensorModelToElevationMapFilter.h.

Member Typedef Documentation

◆ ConstPointer

template<class TInputImage , class TOutputHeight >
typedef itk::SmartPointer<const Self> otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::ConstPointer

Definition at line 91 of file otbStereoSensorModelToElevationMapFilter.h.

◆ CorrelationMetricType

template<class TInputImage , class TOutputHeight >
typedef itk::NormalizedCorrelationImageToImageMetric<TInputImage, TInputImage> otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::CorrelationMetricType

Definition at line 111 of file otbStereoSensorModelToElevationMapFilter.h.

◆ GenericRSTransform3DType

template<class TInputImage , class TOutputHeight >
typedef GenericRSTransform<double, 3, 3> otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::GenericRSTransform3DType

Definition at line 110 of file otbStereoSensorModelToElevationMapFilter.h.

◆ GenericRSTransformType

template<class TInputImage , class TOutputHeight >
typedef GenericRSTransform otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::GenericRSTransformType

Definition at line 109 of file otbStereoSensorModelToElevationMapFilter.h.

◆ HeightType

template<class TInputImage , class TOutputHeight >
typedef OutputImageType::PixelType otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::HeightType

Definition at line 104 of file otbStereoSensorModelToElevationMapFilter.h.

◆ InputImageType

template<class TInputImage , class TOutputHeight >
typedef TInputImage otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::InputImageType

Convenient typedefs

Definition at line 97 of file otbStereoSensorModelToElevationMapFilter.h.

◆ InputPixelType

template<class TInputImage , class TOutputHeight >
typedef InputImageType::PixelType otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::InputPixelType

Definition at line 101 of file otbStereoSensorModelToElevationMapFilter.h.

◆ InterpolatorPointerType

template<class TInputImage , class TOutputHeight >
typedef InterpolatorType::Pointer otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::InterpolatorPointerType

Definition at line 108 of file otbStereoSensorModelToElevationMapFilter.h.

◆ InterpolatorType

template<class TInputImage , class TOutputHeight >
typedef itk::InterpolateImageFunction<TInputImage, double> otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::InterpolatorType

Definition at line 107 of file otbStereoSensorModelToElevationMapFilter.h.

◆ OutputImageType

template<class TInputImage , class TOutputHeight >
typedef TOutputHeight otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::OutputImageType

Definition at line 102 of file otbStereoSensorModelToElevationMapFilter.h.

◆ OutputPointType

template<class TInputImage , class TOutputHeight >
typedef OutputImageType::PointType otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::OutputPointType

Definition at line 105 of file otbStereoSensorModelToElevationMapFilter.h.

◆ OutputRegionType

template<class TInputImage , class TOutputHeight >
typedef OutputImageType::RegionType otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::OutputRegionType

Definition at line 103 of file otbStereoSensorModelToElevationMapFilter.h.

◆ Pointer

template<class TInputImage , class TOutputHeight >
typedef itk::SmartPointer<Self> otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::Pointer

Definition at line 90 of file otbStereoSensorModelToElevationMapFilter.h.

◆ RadiusType

template<class TInputImage , class TOutputHeight >
typedef InputImageType::SizeType otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::RadiusType

Definition at line 112 of file otbStereoSensorModelToElevationMapFilter.h.

◆ Self

template<class TInputImage , class TOutputHeight >
typedef StereoSensorModelToElevationFilter otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::Self

Standard class typedefs

Definition at line 88 of file otbStereoSensorModelToElevationMapFilter.h.

◆ Superclass

template<class TInputImage , class TOutputHeight >
typedef itk::ImageToImageFilter<TInputImage, TOutputHeight> otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::Superclass

Definition at line 89 of file otbStereoSensorModelToElevationMapFilter.h.

Constructor & Destructor Documentation

◆ StereoSensorModelToElevationFilter() [1/2]

template<class TInputImage , class TOutputHeight >
otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::StereoSensorModelToElevationFilter ( )
protected

Constructor

Definition at line 36 of file otbStereoSensorModelToElevationMapFilter.hxx.

◆ ~StereoSensorModelToElevationFilter()

template<class TInputImage , class TOutputHeight >
otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::~StereoSensorModelToElevationFilter ( )
overrideprotected

Destructor

Definition at line 59 of file otbStereoSensorModelToElevationMapFilter.hxx.

◆ StereoSensorModelToElevationFilter() [2/2]

template<class TInputImage , class TOutputHeight >
otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::StereoSensorModelToElevationFilter ( const Self )
privatedelete

Member Function Documentation

◆ BeforeThreadedGenerateData()

template<class TInputImage , class TOutputHeight >
void otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::BeforeThreadedGenerateData ( void  )
overrideprotected

Things to do before the threaded generate-data

Definition at line 255 of file otbStereoSensorModelToElevationMapFilter.hxx.

References otb::DEMHandler::Instance().

◆ Correlation()

template<class TInputImage , class TOutputHeight >
double otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::Correlation ( const std::vector< double > &  master,
const std::vector< double > &  slave 
) const
inlineprivate

◆ CreateAnother()

template<class TInputImage , class TOutputHeight >
virtual::itk::LightObject::Pointer otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::CreateAnother ( void  ) const

◆ GenerateInputRequestedRegion()

template<class TInputImage , class TOutputHeight >
void otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::GenerateInputRequestedRegion ( void  )
overrideprotected

Generate the input requested regions

Definition at line 106 of file otbStereoSensorModelToElevationMapFilter.hxx.

◆ GetCorrelationOutput()

template<class TInputImage , class TOutputHeight >
TOutputHeight * otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::GetCorrelationOutput ( )

Get the output correlation map

Definition at line 96 of file otbStereoSensorModelToElevationMapFilter.hxx.

◆ GetCorrelationThreshold()

template<class TInputImage , class TOutputHeight >
virtual double otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::GetCorrelationThreshold ( )
virtual

Get the threshold of the correlation to keep estimated height. Default is 0.7.

◆ GetMasterInput()

template<class TInputImage , class TOutputHeight >
const TInputImage * otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::GetMasterInput ( ) const

Get the master input image

Definition at line 76 of file otbStereoSensorModelToElevationMapFilter.hxx.

◆ GetNameOfClass()

template<class TInputImage , class TOutputHeight >
virtual const char* otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

◆ GetSlaveInput()

template<class TInputImage , class TOutputHeight >
const TInputImage * otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::GetSlaveInput ( ) const

Get the slave input image

Definition at line 86 of file otbStereoSensorModelToElevationMapFilter.hxx.

◆ GetSubtractInitialElevation()

template<class TInputImage , class TOutputHeight >
virtual bool otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::GetSubtractInitialElevation ( )
virtual

Get the SubtractInitialElevation flag. If set to true, the elevation map will only contains the difference between the estimated elevation and the initial one. If set to false, elevation is absolute. Default is false.

◆ GetVarianceThreshold()

template<class TInputImage , class TOutputHeight >
virtual double otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::GetVarianceThreshold ( )
virtual

Set the threshold on the variance of the master patch to start elevation estimation. Default is 4.

◆ New()

template<class TInputImage , class TOutputHeight >
static Pointer otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::New ( )
static

Method for creation through the object factory.

◆ operator=()

template<class TInputImage , class TOutputHeight >
void otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::operator= ( const Self )
privatedelete

◆ SetCorrelationThreshold()

template<class TInputImage , class TOutputHeight >
virtual void otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::SetCorrelationThreshold ( double  _arg)
virtual

Set the threshold of the correlation to keep estimated height. Default is 0.7.

◆ SetElevationStep()

template<class TInputImage , class TOutputHeight >
virtual void otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::SetElevationStep ( double  _arg)
virtual

Set the step of the elevation exploration. Default is 1 meters.

◆ SetHigherElevation()

template<class TInputImage , class TOutputHeight >
virtual void otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::SetHigherElevation ( double  _arg)
virtual

Set the lower offset for the local elevation exploration. Default is 20 meters.

◆ SetLowerElevation()

template<class TInputImage , class TOutputHeight >
virtual void otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::SetLowerElevation ( double  _arg)
virtual

Set the lower offset for the local elevation exploration. Default is -20 meters.

◆ SetMasterInput()

template<class TInputImage , class TOutputHeight >
void otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::SetMasterInput ( const TInputImage *  image)

Set the master input image

Definition at line 64 of file otbStereoSensorModelToElevationMapFilter.hxx.

◆ SetRadius()

template<class TInputImage , class TOutputHeight >
void otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::SetRadius ( unsigned int  radius)
inline

Set the radius of the patches. Default is 3.

Definition at line 181 of file otbStereoSensorModelToElevationMapFilter.h.

◆ SetSlaveInput()

template<class TInputImage , class TOutputHeight >
void otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::SetSlaveInput ( const TInputImage *  image)

Set the slave input iamge

Definition at line 70 of file otbStereoSensorModelToElevationMapFilter.hxx.

◆ SetSubtractInitialElevation()

template<class TInputImage , class TOutputHeight >
virtual void otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::SetSubtractInitialElevation ( bool  _arg)
virtual

Set the SubtractInitialElevation flag. If set to true, the elevation map will only contains the difference between the estimated elevation and the initial one. If set to false, elevation is absolute. Default is false.

◆ SetVarianceThreshold()

template<class TInputImage , class TOutputHeight >
virtual void otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::SetVarianceThreshold ( double  _arg)
virtual

Set the threshold on the variance of the master patch to start elevation estimation. Default is 4.

◆ SubtractInitialElevationOff()

template<class TInputImage , class TOutputHeight >
virtual void otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::SubtractInitialElevationOff ( )
virtual

◆ SubtractInitialElevationOn()

template<class TInputImage , class TOutputHeight >
virtual void otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::SubtractInitialElevationOn ( )
virtual

Toggle the SubtractInitialElevation flag. If set to true, the elevation map will only contains the difference between the estimated elevation and the initial one. If set to false, elevation is absolute. Default is false.

◆ ThreadedGenerateData()

template<class TInputImage , class TOutputHeight >
void otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::ThreadedGenerateData ( const OutputRegionType outputRegionForThread,
itk::ThreadIdType  threadId 
)
overrideprotected

Threaded generate data

Definition at line 297 of file otbStereoSensorModelToElevationMapFilter.hxx.

References value().

◆ VerifyInputInformation()

template<class TInputImage , class TOutputHeight >
void otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::VerifyInputInformation ( )
inlineoverrideprotected

Override VerifyInputInformation() since this filter's inputs do not need to occupy the same physical space.

See also
ProcessObject::VerifyInputInformation

Definition at line 209 of file otbStereoSensorModelToElevationMapFilter.h.

Member Data Documentation

◆ m_CorrelationThreshold

template<class TInputImage , class TOutputHeight >
double otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::m_CorrelationThreshold
private

Threshold of the correlation to keep estimated height.

Definition at line 236 of file otbStereoSensorModelToElevationMapFilter.h.

◆ m_ElevationStep

template<class TInputImage , class TOutputHeight >
double otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::m_ElevationStep
private

Step of the elevation exploration.

Definition at line 233 of file otbStereoSensorModelToElevationMapFilter.h.

◆ m_HigherElevation

template<class TInputImage , class TOutputHeight >
double otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::m_HigherElevation
private

Higher offset for the local elevation exploration.

Definition at line 230 of file otbStereoSensorModelToElevationMapFilter.h.

◆ m_Interpolator

template<class TInputImage , class TOutputHeight >
InterpolatorPointerType otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::m_Interpolator
private

Interpolator for slave image

Definition at line 221 of file otbStereoSensorModelToElevationMapFilter.h.

◆ m_LowerElevation

template<class TInputImage , class TOutputHeight >
double otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::m_LowerElevation
private

Lower offset for the local elevation exploration.

Definition at line 227 of file otbStereoSensorModelToElevationMapFilter.h.

◆ m_MasterToSlave

template<class TInputImage , class TOutputHeight >
GenericRSTransform3DType::Pointer otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::m_MasterToSlave
private

Master to slave transform

Definition at line 248 of file otbStereoSensorModelToElevationMapFilter.h.

◆ m_Radius

template<class TInputImage , class TOutputHeight >
RadiusType otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::m_Radius
private

Radius of the patches

Definition at line 224 of file otbStereoSensorModelToElevationMapFilter.h.

◆ m_SubtractInitialElevation

template<class TInputImage , class TOutputHeight >
bool otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::m_SubtractInitialElevation
private

If set to true, the elevation map will only contains the difference between the estimated elevation and the initial one. If set to false, elevation is absolute. Default is false.

Definition at line 245 of file otbStereoSensorModelToElevationMapFilter.h.

◆ m_VarianceThreshold

template<class TInputImage , class TOutputHeight >
double otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::m_VarianceThreshold
private

Threshold on the variance of the master patch to start elevation estimation.

Definition at line 240 of file otbStereoSensorModelToElevationMapFilter.h.


The documentation for this class was generated from the following files: