OTB
9.0.0
Orfeo Toolbox
|
#include <otbWindowedSincInterpolateImageFunctionBase.h>
Public Types | |
typedef itk::SmartPointer< const Self > | ConstPointer |
typedef Superclass::ContinuousIndexType | ContinuousIndexType |
typedef Superclass::FunctionType | FunctionType |
typedef Superclass::IndexType | IndexType |
typedef Superclass::InputImageType | InputImageType |
typedef Superclass::IteratorType | IteratorType |
typedef Superclass::OutputType | OutputType |
typedef itk::SmartPointer< Self > | Pointer |
typedef Superclass::RealType | RealType |
typedef WindowedSincInterpolateImageFunctionBase | Self |
typedef Superclass::SizeType | SizeType |
typedef GenericInterpolateImageFunction< TInputImage, TWindowFunction, TBoundaryCondition, TCoordRep > | Superclass |
typedef std::vector< double > | VectorType |
Public Types inherited from otb::GenericInterpolateImageFunction< TInputImage, TWindowFunction, itk::ZeroFluxNeumannBoundaryCondition< TInputImage >, double > | |
typedef itk::SmartPointer< const Self > | ConstPointer |
typedef Superclass::ContinuousIndexType | ContinuousIndexType |
typedef TWindowFunction | FunctionType |
typedef Superclass::IndexType | IndexType |
typedef Superclass::InputImageType | InputImageType |
typedef itk::ConstNeighborhoodIterator< InputImageType, itk::ZeroFluxNeumannBoundaryCondition< TInputImage > > | IteratorType |
typedef Superclass::OutputType | OutputType |
typedef itk::SmartPointer< Self > | Pointer |
typedef Superclass::RealType | RealType |
typedef GenericInterpolateImageFunction | Self |
typedef InputImageType::SizeType | SizeType |
typedef itk::InterpolateImageFunction< TInputImage, double > | Superclass |
Public Member Functions | |
virtual ::itk::LightObject::Pointer | CreateAnother (void) const |
virtual const char * | GetNameOfClass () const |
Public Member Functions inherited from otb::GenericInterpolateImageFunction< TInputImage, TWindowFunction, itk::ZeroFluxNeumannBoundaryCondition< TInputImage >, double > | |
virtual ::itk::LightObject::Pointer | CreateAnother (void) const |
virtual const char * | GetNameOfClass () const |
OutputType | EvaluateAtContinuousIndex (const ContinuousIndexType &index) const override |
virtual void | SetRadius (unsigned int rad) |
virtual unsigned int | GetRadius () const |
virtual FunctionType & | GetFunction (void) |
virtual void | Initialize () |
virtual void | SetNormalizeWeight (bool _arg) |
virtual bool | GetNormalizeWeight () |
Static Public Member Functions | |
static Pointer | New () |
Static Public Member Functions inherited from otb::GenericInterpolateImageFunction< TInputImage, TWindowFunction, itk::ZeroFluxNeumannBoundaryCondition< TInputImage >, double > | |
static Pointer | New () |
Static Public Attributes | |
static const unsigned int | ImageDimension = Superclass::ImageDimension |
Static Public Attributes inherited from otb::GenericInterpolateImageFunction< TInputImage, TWindowFunction, itk::ZeroFluxNeumannBoundaryCondition< TInputImage >, double > | |
static const unsigned int | ImageDimension |
Protected Member Functions | |
void | PrintSelf (std::ostream &os, itk::Indent indent) const override |
WindowedSincInterpolateImageFunctionBase () | |
~WindowedSincInterpolateImageFunctionBase () override | |
Protected Member Functions inherited from otb::GenericInterpolateImageFunction< TInputImage, TWindowFunction, itk::ZeroFluxNeumannBoundaryCondition< TInputImage >, double > | |
GenericInterpolateImageFunction () | |
~GenericInterpolateImageFunction () override | |
void | PrintSelf (std::ostream &os, itk::Indent indent) const override |
void | Modified (void) const override |
virtual void | ResetOffsetTable () |
virtual void | InitializeTables () |
virtual void | FillWeightOffsetTable () |
Private Member Functions | |
void | operator= (const Self &)=delete |
WindowedSincInterpolateImageFunctionBase (const Self &)=delete | |
Use the windowed sinc function to interpolate.
This function is intended to provide an interpolation function that has minimum aliasing artifacts, in contrast to linear interpolation. According to sampling theory, the infinite-support sinc filter, whose Fourier transform is the box filter, is optimal for resampling a function. In practice, the infinite support sinc filter is approximated using a limited support 'windowed' sinc filter. Most of those functions are inspired of the itk::WindowedSincInterpolateImageFunction source code.
Use this filter the way you would use any ImageInterpolationFunction, so for instance, you can plug it into the ResampleImageFilter class. In order to initialize the filter you must choose several template parameters.
There are a few improvements that an enthusiasting ITK developer could make to this filter. One issue is with the way that the kernel is applied. The computational expense comes from two sources: computing the kernel weights K(t) and multiplying the pixels in the window by the kernel weights. The first is done more or less efficiently in operations (where d is the dimensionality of the image). The second can be done better. Presently, each pixel is multiplied by the weights and added to the running total. This results in multiplication operations. However, by keeping intermediate sums, it would be possible to do the operation in operations. This would require some creative coding. In addition, in the case when one of the coordinates is integer, the computation could be reduced by an order of magnitude.
Definition at line 140 of file otbWindowedSincInterpolateImageFunctionBase.h.
typedef itk::SmartPointer<const Self> otb::WindowedSincInterpolateImageFunctionBase< TInputImage, TWindowFunction, TBoundaryCondition, TCoordRep >::ConstPointer |
Definition at line 148 of file otbWindowedSincInterpolateImageFunctionBase.h.
typedef Superclass::ContinuousIndexType otb::WindowedSincInterpolateImageFunctionBase< TInputImage, TWindowFunction, TBoundaryCondition, TCoordRep >::ContinuousIndexType |
Definition at line 168 of file otbWindowedSincInterpolateImageFunctionBase.h.
typedef Superclass::FunctionType otb::WindowedSincInterpolateImageFunctionBase< TInputImage, TWindowFunction, TBoundaryCondition, TCoordRep >::FunctionType |
Definition at line 170 of file otbWindowedSincInterpolateImageFunctionBase.h.
typedef Superclass::IndexType otb::WindowedSincInterpolateImageFunctionBase< TInputImage, TWindowFunction, TBoundaryCondition, TCoordRep >::IndexType |
Superclass typedef inheritance.
Definition at line 164 of file otbWindowedSincInterpolateImageFunctionBase.h.
typedef Superclass::InputImageType otb::WindowedSincInterpolateImageFunctionBase< TInputImage, TWindowFunction, TBoundaryCondition, TCoordRep >::InputImageType |
Input and output images typedef definition.
Definition at line 154 of file otbWindowedSincInterpolateImageFunctionBase.h.
typedef Superclass::IteratorType otb::WindowedSincInterpolateImageFunctionBase< TInputImage, TWindowFunction, TBoundaryCondition, TCoordRep >::IteratorType |
Definition at line 167 of file otbWindowedSincInterpolateImageFunctionBase.h.
typedef Superclass::OutputType otb::WindowedSincInterpolateImageFunctionBase< TInputImage, TWindowFunction, TBoundaryCondition, TCoordRep >::OutputType |
Definition at line 158 of file otbWindowedSincInterpolateImageFunctionBase.h.
typedef itk::SmartPointer<Self> otb::WindowedSincInterpolateImageFunctionBase< TInputImage, TWindowFunction, TBoundaryCondition, TCoordRep >::Pointer |
Definition at line 147 of file otbWindowedSincInterpolateImageFunctionBase.h.
typedef Superclass::RealType otb::WindowedSincInterpolateImageFunctionBase< TInputImage, TWindowFunction, TBoundaryCondition, TCoordRep >::RealType |
Definition at line 166 of file otbWindowedSincInterpolateImageFunctionBase.h.
typedef WindowedSincInterpolateImageFunctionBase otb::WindowedSincInterpolateImageFunctionBase< TInputImage, TWindowFunction, TBoundaryCondition, TCoordRep >::Self |
Standard class typedefs.
Definition at line 145 of file otbWindowedSincInterpolateImageFunctionBase.h.
typedef Superclass::SizeType otb::WindowedSincInterpolateImageFunctionBase< TInputImage, TWindowFunction, TBoundaryCondition, TCoordRep >::SizeType |
Definition at line 165 of file otbWindowedSincInterpolateImageFunctionBase.h.
typedef GenericInterpolateImageFunction<TInputImage, TWindowFunction, TBoundaryCondition, TCoordRep> otb::WindowedSincInterpolateImageFunctionBase< TInputImage, TWindowFunction, TBoundaryCondition, TCoordRep >::Superclass |
Definition at line 146 of file otbWindowedSincInterpolateImageFunctionBase.h.
typedef std::vector<double> otb::WindowedSincInterpolateImageFunctionBase< TInputImage, TWindowFunction, TBoundaryCondition, TCoordRep >::VectorType |
Definition at line 171 of file otbWindowedSincInterpolateImageFunctionBase.h.
|
protected |
Compute a resampled profil according to the window size.
Constructor
Definition at line 30 of file otbWindowedSincInterpolateImageFunctionBase.hxx.
|
overrideprotected |
Destructor
Definition at line 36 of file otbWindowedSincInterpolateImageFunctionBase.hxx.
|
privatedelete |
virtual::itk::LightObject::Pointer otb::WindowedSincInterpolateImageFunctionBase< TInputImage, TWindowFunction, TBoundaryCondition, TCoordRep >::CreateAnother | ( | void | ) | const |
|
virtual |
Run-time type information (and related methods).
|
static |
Method for creation through the object factory.
|
privatedelete |
|
overrideprotected |
Definition at line 41 of file otbWindowedSincInterpolateImageFunctionBase.hxx.
|
static |
Dimension underlying input image.
Definition at line 161 of file otbWindowedSincInterpolateImageFunctionBase.h.