OTB
9.0.0
Orfeo Toolbox
|
#include <otbStereoSensorModelToElevationMapFilter.h>
Public Types | |
typedef itk::SmartPointer< const Self > | ConstPointer |
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< Self > | Pointer |
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 () |
Static Public Member Functions | |
static Pointer | New () |
InterpolatorPointerType | m_Interpolator |
RadiusType | m_Radius |
double | m_LowerElevation |
double | m_HigherElevation |
double | m_ElevationStep |
double | m_CorrelationThreshold |
double | m_VarianceThreshold |
bool | m_SubtractInitialElevation |
GenericRSTransform3DType::Pointer | m_MasterToSlave |
void | SetRadius (unsigned int radius) |
StereoSensorModelToElevationFilter () | |
~StereoSensorModelToElevationFilter () override | |
void | ThreadedGenerateData (const OutputRegionType &outputRegionForThread, itk::ThreadIdType threadId) override |
void | GenerateInputRequestedRegion (void) override |
void | BeforeThreadedGenerateData () override |
void | VerifyInputInformation () override |
StereoSensorModelToElevationFilter (const Self &)=delete | |
void | operator= (const Self &)=delete |
double | Correlation (const std::vector< double > &master, const std::vector< double > &slave) const |
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 :
The VarianceThreshold allows discarding master patches for which variance is too small to yield reliable correlation. If the variance of the current master patch lies below this threshold, no elevation exploration is performed at this location (default is 4).
This filter supports multi-threading and streaming. It can process images of any size and does not requires input images size to match. If images extents do not match, elevation will only be estimated over their overlapping extent. The elevation map is produced in the geometry and grid of the master input image.
Definition at line 83 of file otbStereoSensorModelToElevationMapFilter.h.
typedef itk::SmartPointer<const Self> otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::ConstPointer |
Definition at line 91 of file otbStereoSensorModelToElevationMapFilter.h.
typedef itk::NormalizedCorrelationImageToImageMetric<TInputImage, TInputImage> otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::CorrelationMetricType |
Definition at line 111 of file otbStereoSensorModelToElevationMapFilter.h.
typedef GenericRSTransform<double, 3, 3> otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::GenericRSTransform3DType |
Definition at line 110 of file otbStereoSensorModelToElevationMapFilter.h.
typedef GenericRSTransform otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::GenericRSTransformType |
Definition at line 109 of file otbStereoSensorModelToElevationMapFilter.h.
typedef OutputImageType::PixelType otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::HeightType |
Definition at line 104 of file otbStereoSensorModelToElevationMapFilter.h.
typedef TInputImage otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::InputImageType |
Convenient typedefs
Definition at line 97 of file otbStereoSensorModelToElevationMapFilter.h.
typedef InputImageType::PixelType otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::InputPixelType |
Definition at line 101 of file otbStereoSensorModelToElevationMapFilter.h.
typedef InterpolatorType::Pointer otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::InterpolatorPointerType |
Definition at line 108 of file otbStereoSensorModelToElevationMapFilter.h.
typedef itk::InterpolateImageFunction<TInputImage, double> otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::InterpolatorType |
Definition at line 107 of file otbStereoSensorModelToElevationMapFilter.h.
typedef TOutputHeight otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::OutputImageType |
Definition at line 102 of file otbStereoSensorModelToElevationMapFilter.h.
typedef OutputImageType::PointType otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::OutputPointType |
Definition at line 105 of file otbStereoSensorModelToElevationMapFilter.h.
typedef OutputImageType::RegionType otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::OutputRegionType |
Definition at line 103 of file otbStereoSensorModelToElevationMapFilter.h.
typedef itk::SmartPointer<Self> otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::Pointer |
Definition at line 90 of file otbStereoSensorModelToElevationMapFilter.h.
typedef InputImageType::SizeType otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::RadiusType |
Definition at line 112 of file otbStereoSensorModelToElevationMapFilter.h.
typedef StereoSensorModelToElevationFilter otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::Self |
Standard class typedefs
Definition at line 88 of file otbStereoSensorModelToElevationMapFilter.h.
typedef itk::ImageToImageFilter<TInputImage, TOutputHeight> otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::Superclass |
Definition at line 89 of file otbStereoSensorModelToElevationMapFilter.h.
|
protected |
Constructor
Definition at line 36 of file otbStereoSensorModelToElevationMapFilter.hxx.
|
overrideprotected |
Destructor
Definition at line 59 of file otbStereoSensorModelToElevationMapFilter.hxx.
|
privatedelete |
Interpolator for slave image
|
overrideprotected |
Things to do before the threaded generate-data
Definition at line 255 of file otbStereoSensorModelToElevationMapFilter.hxx.
References otb::GetHeightAboveEllipsoid(), and otb::DEMHandler::GetInstance().
|
inlineprivate |
Interpolator for slave image
Definition at line 505 of file otbStereoSensorModelToElevationMapFilter.hxx.
virtual::itk::LightObject::Pointer otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::CreateAnother | ( | void | ) | const |
|
overrideprotected |
Generate the input requested regions
Definition at line 106 of file otbStereoSensorModelToElevationMapFilter.hxx.
TOutputHeight * otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::GetCorrelationOutput |
Get the output correlation map
Definition at line 96 of file otbStereoSensorModelToElevationMapFilter.hxx.
|
virtual |
Get the threshold of the correlation to keep estimated height. Default is 0.7.
const TInputImage * otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::GetMasterInput |
Get the master input image
Definition at line 76 of file otbStereoSensorModelToElevationMapFilter.hxx.
|
virtual |
Run-time type information (and related methods).
const TInputImage * otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::GetSlaveInput |
Get the slave input image
Definition at line 86 of file otbStereoSensorModelToElevationMapFilter.hxx.
|
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.
|
virtual |
Set the threshold on the variance of the master patch to start elevation estimation. Default is 4.
|
static |
Method for creation through the object factory.
|
privatedelete |
Interpolator for slave image
|
virtual |
Set the threshold of the correlation to keep estimated height. Default is 0.7.
|
virtual |
Set the step of the elevation exploration. Default is 1 meters.
|
virtual |
Set the lower offset for the local elevation exploration. Default is 20 meters.
|
virtual |
Set the lower offset for the local elevation exploration. Default is -20 meters.
void otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::SetMasterInput | ( | const TInputImage * | image | ) |
Set the master input image
Definition at line 64 of file otbStereoSensorModelToElevationMapFilter.hxx.
|
inline |
Set the radius of the patches. Default is 3.
Definition at line 181 of file otbStereoSensorModelToElevationMapFilter.h.
void otb::StereoSensorModelToElevationFilter< TInputImage, TOutputHeight >::SetSlaveInput | ( | const TInputImage * | image | ) |
Set the slave input image
Definition at line 70 of file otbStereoSensorModelToElevationMapFilter.hxx.
|
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.
|
virtual |
Set the threshold on the variance of the master patch to start elevation estimation. Default is 4.
|
virtual |
|
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.
|
overrideprotected |
Threaded generate data
Definition at line 297 of file otbStereoSensorModelToElevationMapFilter.hxx.
|
inlineoverrideprotected |
Override VerifyInputInformation() since this filter's inputs do not need to occupy the same physical space.
Definition at line 209 of file otbStereoSensorModelToElevationMapFilter.h.
|
private |
Threshold of the correlation to keep estimated height.
Definition at line 236 of file otbStereoSensorModelToElevationMapFilter.h.
|
private |
Step of the elevation exploration.
Definition at line 233 of file otbStereoSensorModelToElevationMapFilter.h.
|
private |
Higher offset for the local elevation exploration.
Definition at line 230 of file otbStereoSensorModelToElevationMapFilter.h.
|
private |
Interpolator for slave image
Definition at line 221 of file otbStereoSensorModelToElevationMapFilter.h.
|
private |
Lower offset for the local elevation exploration.
Definition at line 227 of file otbStereoSensorModelToElevationMapFilter.h.
|
private |
Master to slave transform
Definition at line 248 of file otbStereoSensorModelToElevationMapFilter.h.
|
private |
Radius of the patches
Definition at line 224 of file otbStereoSensorModelToElevationMapFilter.h.
|
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.
|
private |
Threshold on the variance of the master patch to start elevation estimation.
Definition at line 240 of file otbStereoSensorModelToElevationMapFilter.h.