OTB  9.0.0
Orfeo Toolbox
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType > Class Template Reference

#include <otbBSplineInterpolateImageFunction.h>

+ Inheritance diagram for otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >:
+ Collaboration diagram for otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >:

Public Types

typedef TCoefficientType CoefficientDataType
 
typedef otb::BSplineDecompositionImageFilter< TImageType, CoefficientImageTypeCoefficientFilter
 
typedef CoefficientFilter::Pointer CoefficientFilterPointer
 
typedef itk::Image< CoefficientDataType, itkGetStaticConstMacro(ImageDimension)> CoefficientImageType
 
typedef itk::SmartPointer< const SelfConstPointer
 
typedef Superclass::ContinuousIndexType ContinuousIndexType
 
typedef itk::CovariantVector< OutputType, itkGetStaticConstMacro(ImageDimension)> CovariantVectorType
 
typedef Superclass::IndexType IndexType
 
typedef Superclass::InputImageType InputImageType
 
typedef itk::ImageLinearIteratorWithIndex< TImageType > Iterator
 
typedef Superclass::OutputType OutputType
 
typedef itk::SmartPointer< SelfPointer
 
typedef Superclass::PointType PointType
 
typedef InputImageType::RegionType RegionType
 
typedef BSplineInterpolateImageFunction Self
 
typedef itk::InterpolateImageFunction< TImageType, TCoordRep > Superclass
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
CovariantVectorType EvaluateDerivative (const PointType &point) const
 
virtual const char * GetNameOfClass () const
 
OutputType EvaluateAtContinuousIndex (const ContinuousIndexType &index) const override
 
CovariantVectorType EvaluateDerivativeAtContinuousIndex (const ContinuousIndexType &x) const
 

Static Public Member Functions

static Pointer New ()
 

Static Public Attributes

static const unsigned int ImageDimension = Superclass::ImageDimension
 
std::vector< CoefficientDataTypem_Scratch
 
TImageType::SizeType m_DataLength
 
unsigned int m_SplineOrder
 
CoefficientImageType::ConstPointer m_Coefficients
 
Iterator m_CIterator
 
unsigned long m_MaxNumberInterpolationPoints
 
std::vector< IndexTypem_PointsToIndex
 
CoefficientFilterPointer m_CoefficientFilter
 
RegionType m_CurrentBufferedRegion
 
void SetSplineOrder (unsigned int SplineOrder)
 
virtual int GetSplineOrder ()
 
void SetInputImage (const TImageType *inputData) override
 
virtual void UpdateCoefficientsFilter (void)
 
 BSplineInterpolateImageFunction ()
 
 ~BSplineInterpolateImageFunction () override=default
 
void operator= (const Self &)=delete
 
void PrintSelf (std::ostream &os, itk::Indent indent) const override
 
 BSplineInterpolateImageFunction (const Self &)=delete
 
void SetInterpolationWeights (const ContinuousIndexType &x, const vnl_matrix< long > &EvaluateIndex, vnl_matrix< double > &weights, unsigned int splineOrder) const
 
void SetDerivativeWeights (const ContinuousIndexType &x, const vnl_matrix< long > &EvaluateIndex, vnl_matrix< double > &weights, unsigned int splineOrder) const
 
void GeneratePointsToIndex ()
 
void DetermineRegionOfSupport (vnl_matrix< long > &evaluateIndex, const ContinuousIndexType &x, unsigned int splineOrder) const
 
void ApplyMirrorBoundaryConditions (vnl_matrix< long > &evaluateIndex, unsigned int splineOrder) const
 

Detailed Description

template<class TImageType, class TCoordRep = double, class TCoefficientType = double>
class otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >

This class is an evolution of the itk::BSplineInterpolateImageFunction to handle huge images with this interpolator. For more documentation, please refer to the original class.

See also
itk::BSplineInterpolateImageFunction
itk::BSplineDecompositionImageFilter
otb::BSplineDecompositionImageFilter

Definition at line 48 of file otbBSplineInterpolateImageFunction.h.

Member Typedef Documentation

◆ CoefficientDataType

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
typedef TCoefficientType otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::CoefficientDataType

Internal Coefficient typedef support

Definition at line 88 of file otbBSplineInterpolateImageFunction.h.

◆ CoefficientFilter

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
typedef otb::BSplineDecompositionImageFilter<TImageType, CoefficientImageType> otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::CoefficientFilter

Define filter for calculating the BSpline coefficients

Definition at line 92 of file otbBSplineInterpolateImageFunction.h.

◆ CoefficientFilterPointer

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
typedef CoefficientFilter::Pointer otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::CoefficientFilterPointer

Definition at line 93 of file otbBSplineInterpolateImageFunction.h.

◆ CoefficientImageType

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
typedef itk::Image<CoefficientDataType, itkGetStaticConstMacro(ImageDimension)> otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::CoefficientImageType

Definition at line 89 of file otbBSplineInterpolateImageFunction.h.

◆ ConstPointer

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
typedef itk::SmartPointer<const Self> otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::ConstPointer

Definition at line 55 of file otbBSplineInterpolateImageFunction.h.

◆ ContinuousIndexType

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
typedef Superclass::ContinuousIndexType otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::ContinuousIndexType

ContinuousIndex typedef support.

Definition at line 79 of file otbBSplineInterpolateImageFunction.h.

◆ CovariantVectorType

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
typedef itk::CovariantVector<OutputType, itkGetStaticConstMacro(ImageDimension)> otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::CovariantVectorType

Derivative typedef support

Definition at line 106 of file otbBSplineInterpolateImageFunction.h.

◆ IndexType

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
typedef Superclass::IndexType otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::IndexType

Index typedef support.

Definition at line 73 of file otbBSplineInterpolateImageFunction.h.

◆ InputImageType

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
typedef Superclass::InputImageType otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::InputImageType

InputImageType typedef support.

Definition at line 67 of file otbBSplineInterpolateImageFunction.h.

◆ Iterator

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
typedef itk::ImageLinearIteratorWithIndex<TImageType> otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::Iterator

Iterator typedef support

Definition at line 85 of file otbBSplineInterpolateImageFunction.h.

◆ OutputType

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
typedef Superclass::OutputType otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::OutputType

OutputType typedef support.

Definition at line 61 of file otbBSplineInterpolateImageFunction.h.

◆ Pointer

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
typedef itk::SmartPointer<Self> otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::Pointer

Definition at line 54 of file otbBSplineInterpolateImageFunction.h.

◆ PointType

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
typedef Superclass::PointType otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::PointType

PointType typedef support

Definition at line 82 of file otbBSplineInterpolateImageFunction.h.

◆ RegionType

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
typedef InputImageType::RegionType otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::RegionType

Region typedef support

Definition at line 76 of file otbBSplineInterpolateImageFunction.h.

◆ Self

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
typedef BSplineInterpolateImageFunction otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::Self

Standard class typedefs.

Definition at line 52 of file otbBSplineInterpolateImageFunction.h.

◆ Superclass

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
typedef itk::InterpolateImageFunction<TImageType, TCoordRep> otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::Superclass

Definition at line 53 of file otbBSplineInterpolateImageFunction.h.

Constructor & Destructor Documentation

◆ BSplineInterpolateImageFunction() [1/2]

template<class TImageType , class TCoordRep , class TCoefficientType >
otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::BSplineInterpolateImageFunction
protected

◆ ~BSplineInterpolateImageFunction()

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::~BSplineInterpolateImageFunction ( )
overrideprotecteddefault

Get/Sets the Spline Order, supports 0th - 5th order splines. The default is a 3rd order spline.

◆ BSplineInterpolateImageFunction() [2/2]

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::BSplineInterpolateImageFunction ( const Self )
privatedelete

Get/Sets the Spline Order, supports 0th - 5th order splines. The default is a 3rd order spline.

Member Function Documentation

◆ ApplyMirrorBoundaryConditions()

template<class TImageType , class TCoordRep , class TCoefficientType >
void otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::ApplyMirrorBoundaryConditions ( vnl_matrix< long > &  evaluateIndex,
unsigned int  splineOrder 
) const
private

Set the indices in evaluateIndex at the boundaries based on mirror boundary conditions.

Definition at line 503 of file otbBSplineInterpolateImageFunction.hxx.

◆ CreateAnother()

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
virtual::itk::LightObject::Pointer otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::CreateAnother ( void  ) const

◆ DetermineRegionOfSupport()

template<class TImageType , class TCoordRep , class TCoefficientType >
void otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::DetermineRegionOfSupport ( vnl_matrix< long > &  evaluateIndex,
const ContinuousIndexType x,
unsigned int  splineOrder 
) const
private

Determines the indices to use give the splines region of support

Definition at line 467 of file otbBSplineInterpolateImageFunction.hxx.

◆ EvaluateAtContinuousIndex()

template<class TImageType , class TCoordRep , class TCoefficientType >
BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::OutputType otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::EvaluateAtContinuousIndex ( const ContinuousIndexType index) const
override

Evaluate the function at a ContinuousIndex position.

Returns the B-Spline interpolated image intensity at a specified point position. No bounds checking is done. The point is assume to lie within the image buffer.

ImageFunction::IsInsideBuffer() can be used to check bounds before calling the method.

Definition at line 116 of file otbBSplineInterpolateImageFunction.hxx.

◆ EvaluateDerivative()

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
CovariantVectorType otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::EvaluateDerivative ( const PointType point) const
inline

Definition at line 108 of file otbBSplineInterpolateImageFunction.h.

◆ EvaluateDerivativeAtContinuousIndex()

template<class TImageType , class TCoordRep , class TCoefficientType >
BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::CovariantVectorType otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::EvaluateDerivativeAtContinuousIndex ( const ContinuousIndexType x) const

Evaluate the function at a ContinuousIndex position.

Returns the B-Spline interpolated image intensity at a specified point position. No bounds checking is done. The point is assume to lie within the image buffer.

ImageFunction::IsInsideBuffer() can be used to check bounds before calling the method.

Definition at line 183 of file otbBSplineInterpolateImageFunction.hxx.

◆ GeneratePointsToIndex()

template<class TImageType , class TCoordRep , class TCoefficientType >
void otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::GeneratePointsToIndex
private

Precomputation for converting the 1D index of the interpolation neighborhood to an N-dimensional index.

Definition at line 444 of file otbBSplineInterpolateImageFunction.hxx.

◆ GetNameOfClass()

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
virtual const char* otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

◆ GetSplineOrder()

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
virtual int otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::GetSplineOrder ( )
virtual

Get/Sets the Spline Order, supports 0th - 5th order splines. The default is a 3rd order spline.

◆ New()

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
static Pointer otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::New ( )
static

New macro for creation of through a Smart Pointer

◆ operator=()

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
void otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::operator= ( const Self )
protecteddelete

Get/Sets the Spline Order, supports 0th - 5th order splines. The default is a 3rd order spline.

◆ PrintSelf()

template<class TImageType , class TCoordRep , class TCoefficientType >
void otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::PrintSelf ( std::ostream &  os,
itk::Indent  indent 
) const
overrideprotected

Standard "PrintSelf" method

Definition at line 52 of file otbBSplineInterpolateImageFunction.hxx.

◆ SetDerivativeWeights()

template<class TImageType , class TCoordRep , class TCoefficientType >
void otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::SetDerivativeWeights ( const ContinuousIndexType x,
const vnl_matrix< long > &  EvaluateIndex,
vnl_matrix< double > &  weights,
unsigned int  splineOrder 
) const
private

Determines the weights for the derivative portion of the value x

Definition at line 333 of file otbBSplineInterpolateImageFunction.hxx.

◆ SetInputImage()

template<class TImageType , class TCoordRep , class TCoefficientType >
void otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::SetInputImage ( const TImageType *  inputData)
override

Set the input image. This must be set by the user.

Definition at line 70 of file otbBSplineInterpolateImageFunction.hxx.

◆ SetInterpolationWeights()

template<class TImageType , class TCoordRep , class TCoefficientType >
void otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::SetInterpolationWeights ( const ContinuousIndexType x,
const vnl_matrix< long > &  EvaluateIndex,
vnl_matrix< double > &  weights,
unsigned int  splineOrder 
) const
private

Determines the weights for interpolation of the value x

Definition at line 236 of file otbBSplineInterpolateImageFunction.hxx.

◆ SetSplineOrder()

template<class TImageType , class TCoordRep , class TCoefficientType >
void otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::SetSplineOrder ( unsigned int  SplineOrder)

Get/Sets the Spline Order, supports 0th - 5th order splines. The default is a 3rd order spline.

Definition at line 96 of file otbBSplineInterpolateImageFunction.hxx.

Referenced by otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::BSplineInterpolateImageFunction().

◆ UpdateCoefficientsFilter()

template<class TImageType , class TCoordRep , class TCoefficientType >
void otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::UpdateCoefficientsFilter ( void  )
virtual

Update coefficients filter. Coefficient filter are computed over the buffered region of the input image.

Definition at line 60 of file otbBSplineInterpolateImageFunction.hxx.

Member Data Documentation

◆ ImageDimension

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
const unsigned int otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::ImageDimension = Superclass::ImageDimension
static

Dimension underlying input image.

Definition at line 70 of file otbBSplineInterpolateImageFunction.h.

◆ m_CIterator

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
Iterator otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::m_CIterator
private

Get/Sets the Spline Order, supports 0th - 5th order splines. The default is a 3rd order spline.

Definition at line 164 of file otbBSplineInterpolateImageFunction.h.

◆ m_CoefficientFilter

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
CoefficientFilterPointer otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::m_CoefficientFilter
private

Get/Sets the Spline Order, supports 0th - 5th order splines. The default is a 3rd order spline.

Definition at line 168 of file otbBSplineInterpolateImageFunction.h.

◆ m_Coefficients

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
CoefficientImageType::ConstPointer otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::m_Coefficients
protected

Get/Sets the Spline Order, supports 0th - 5th order splines. The default is a 3rd order spline.

Definition at line 142 of file otbBSplineInterpolateImageFunction.h.

◆ m_CurrentBufferedRegion

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
RegionType otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::m_CurrentBufferedRegion
private

Get/Sets the Spline Order, supports 0th - 5th order splines. The default is a 3rd order spline.

Definition at line 170 of file otbBSplineInterpolateImageFunction.h.

◆ m_DataLength

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
TImageType::SizeType otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::m_DataLength
protected

Get/Sets the Spline Order, supports 0th - 5th order splines. The default is a 3rd order spline.

Definition at line 139 of file otbBSplineInterpolateImageFunction.h.

◆ m_MaxNumberInterpolationPoints

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
unsigned long otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::m_MaxNumberInterpolationPoints
private

Get/Sets the Spline Order, supports 0th - 5th order splines. The default is a 3rd order spline.

Definition at line 165 of file otbBSplineInterpolateImageFunction.h.

◆ m_PointsToIndex

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
std::vector<IndexType> otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::m_PointsToIndex
private

Get/Sets the Spline Order, supports 0th - 5th order splines. The default is a 3rd order spline.

Definition at line 166 of file otbBSplineInterpolateImageFunction.h.

◆ m_Scratch

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
std::vector<CoefficientDataType> otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::m_Scratch
protected

Get/Sets the Spline Order, supports 0th - 5th order splines. The default is a 3rd order spline.

Definition at line 138 of file otbBSplineInterpolateImageFunction.h.

◆ m_SplineOrder

template<class TImageType , class TCoordRep = double, class TCoefficientType = double>
unsigned int otb::BSplineInterpolateImageFunction< TImageType, TCoordRep, TCoefficientType >::m_SplineOrder
protected

Get/Sets the Spline Order, supports 0th - 5th order splines. The default is a 3rd order spline.

Definition at line 140 of file otbBSplineInterpolateImageFunction.h.


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