ITK
5.0.0
Insight Segmentation and Registration Toolkit
|
#include <itkHigherOrderAccurateDerivativeOperator.h>
A NeighborhoodOperator for calculating an n-th order accurate derivative at a pixel.
Calculate the image derivative from a higher order accurate central-difference derivative kernel.
Based on the work here:
Khan, IR and Ohba, Ryoji. "Closed-form expressions for the finite difference approximations of first and higher derivatives based on Taylor series." Journal of Computational and Applied Mathematics. vol 107. p. 179-193. 1999.
Khan, IR and Ohba, Ryoji. "Taylor series based finite difference approximations of higher-degree derivatives." Journal of Computational and Applied Mathematics. vol 154. p. 115-124. 2003.
To specify the order of accuracy, use SetOrderOfAccuracy(). The approximation will be accurate to two times the OrderOfAccuracy in terms of Taylor series terms.
Definition at line 62 of file itkHigherOrderAccurateDerivativeOperator.h.
Public Types | |
using | PixelRealType = typename Superclass::PixelRealType |
using | PixelType = typename Superclass::PixelType |
using | Self = HigherOrderAccurateDerivativeOperator |
using | Superclass = NeighborhoodOperator< TPixel, VDimension, TAllocator > |
Public Types inherited from itk::NeighborhoodOperator< TPixel, VDimension, TAllocator > | |
using | PixelRealType = typename NumericTraits< TPixel >::RealType |
using | PixelType = TPixel |
using | Self = NeighborhoodOperator |
using | SizeType = typename Superclass::SizeType |
using | SliceIteratorType = SliceIterator< TPixel, Self > |
using | Superclass = Neighborhood< TPixel, VDimension, TAllocator > |
Public Types inherited from itk::Neighborhood< TPixel, VDimension, TAllocator > | |
using | AllocatorType = TAllocator |
using | ConstIterator = typename AllocatorType::const_iterator |
using | DimensionValueType = unsigned int |
using | Iterator = typename AllocatorType::iterator |
using | NeighborIndexType = SizeValueType |
using | OffsetType = Offset< VDimension > |
using | PixelType = TPixel |
using | RadiusType = ::itk::Size< VDimension > |
using | Self = Neighborhood |
using | SizeType = ::itk::Size< VDimension > |
using | SizeValueType = typename SizeType::SizeValueType |
using | SliceIteratorType = SliceIterator< TPixel, Self > |
Protected Types | |
using | CoefficientVector = typename Superclass::CoefficientVector |
Protected Types inherited from itk::NeighborhoodOperator< TPixel, VDimension, TAllocator > | |
using | CoefficientVector = std::vector< PixelRealType > |
Protected Member Functions | |
CoefficientVector | GenerateCoefficients () override |
Protected Member Functions inherited from itk::NeighborhoodOperator< TPixel, VDimension, TAllocator > | |
virtual void | FillCenteredDirectional (const CoefficientVector &) |
void | InitializeToZero () |
Protected Member Functions inherited from itk::Neighborhood< TPixel, VDimension, TAllocator > | |
virtual void | Allocate (NeighborIndexType i) |
virtual void | ComputeNeighborhoodOffsetTable () |
virtual void | ComputeNeighborhoodStrideTable () |
void | SetSize () |
Private Attributes | |
unsigned int | m_Order |
unsigned int | m_OrderOfAccuracy |
void | Fill (const CoefficientVector &coeff) override |
CoefficientVector | GenerateFirstOrderCoefficients () |
Additional Inherited Members | |
Static Public Attributes inherited from itk::Neighborhood< TPixel, VDimension, TAllocator > | |
static constexpr unsigned int | NeighborhoodDimension = VDimension |
|
protected |
Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.
Definition at line 130 of file itkHigherOrderAccurateDerivativeOperator.h.
using itk::HigherOrderAccurateDerivativeOperator< TPixel, VDimension, TAllocator >::PixelRealType = typename Superclass::PixelRealType |
Definition at line 73 of file itkHigherOrderAccurateDerivativeOperator.h.
using itk::HigherOrderAccurateDerivativeOperator< TPixel, VDimension, TAllocator >::PixelType = typename Superclass::PixelType |
Definition at line 72 of file itkHigherOrderAccurateDerivativeOperator.h.
using itk::HigherOrderAccurateDerivativeOperator< TPixel, VDimension, TAllocator >::Self = HigherOrderAccurateDerivativeOperator |
Standard class type alias.
Definition at line 68 of file itkHigherOrderAccurateDerivativeOperator.h.
using itk::HigherOrderAccurateDerivativeOperator< TPixel, VDimension, TAllocator >::Superclass = NeighborhoodOperator< TPixel, VDimension, TAllocator > |
Definition at line 70 of file itkHigherOrderAccurateDerivativeOperator.h.
|
inline |
Constructor.
Definition at line 79 of file itkHigherOrderAccurateDerivativeOperator.h.
|
inline |
Copy constructor.
Definition at line 85 of file itkHigherOrderAccurateDerivativeOperator.h.
References itk::HigherOrderAccurateDerivativeOperator< TPixel, VDimension, TAllocator >::m_Order.
|
inlineoverrideprotectedvirtual |
Arranges coefficients spatially in the memory buffer.
Implements itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >.
Definition at line 136 of file itkHigherOrderAccurateDerivativeOperator.h.
References itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::FillCenteredDirectional().
|
overrideprotectedvirtual |
Calculates operator coefficients.
Implements itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >.
|
private |
Arranges coefficients spatially in the memory buffer.
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >.
|
inline |
Returns the order of the derivative.
Definition at line 105 of file itkHigherOrderAccurateDerivativeOperator.h.
References itk::HigherOrderAccurateDerivativeOperator< TPixel, VDimension, TAllocator >::m_Order.
|
inline |
Definition at line 115 of file itkHigherOrderAccurateDerivativeOperator.h.
References itk::HigherOrderAccurateDerivativeOperator< TPixel, VDimension, TAllocator >::m_OrderOfAccuracy.
|
inline |
Assignment operator
Definition at line 90 of file itkHigherOrderAccurateDerivativeOperator.h.
References itk::HigherOrderAccurateDerivativeOperator< TPixel, VDimension, TAllocator >::m_Order, and itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::operator=().
|
inlineoverridevirtual |
Prints some debugging information
Reimplemented from itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >.
Definition at line 118 of file itkHigherOrderAccurateDerivativeOperator.h.
References itk::Indent::GetNextIndent(), itk::HigherOrderAccurateDerivativeOperator< TPixel, VDimension, TAllocator >::m_Order, itk::HigherOrderAccurateDerivativeOperator< TPixel, VDimension, TAllocator >::m_OrderOfAccuracy, and itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::PrintSelf().
|
inline |
Sets the order of the derivative.
Definition at line 99 of file itkHigherOrderAccurateDerivativeOperator.h.
References itk::HigherOrderAccurateDerivativeOperator< TPixel, VDimension, TAllocator >::m_Order.
|
inline |
Sets the order of accuracy of the derivative. The derivative estimate will be accurate out to two times the given order in terms of Taylor Series terms. The radius of the neighborhood operator is also equal to the given order.
Definition at line 110 of file itkHigherOrderAccurateDerivativeOperator.h.
References itk::HigherOrderAccurateDerivativeOperator< TPixel, VDimension, TAllocator >::m_OrderOfAccuracy.
|
private |
Order of the derivative.
Definition at line 143 of file itkHigherOrderAccurateDerivativeOperator.h.
Referenced by itk::HigherOrderAccurateDerivativeOperator< TPixel, VDimension, TAllocator >::GetOrder(), itk::HigherOrderAccurateDerivativeOperator< TPixel, VDimension, TAllocator >::HigherOrderAccurateDerivativeOperator(), itk::HigherOrderAccurateDerivativeOperator< TPixel, VDimension, TAllocator >::operator=(), itk::HigherOrderAccurateDerivativeOperator< TPixel, VDimension, TAllocator >::PrintSelf(), and itk::HigherOrderAccurateDerivativeOperator< TPixel, VDimension, TAllocator >::SetOrder().
|
private |
Order of accuracy.
Definition at line 146 of file itkHigherOrderAccurateDerivativeOperator.h.
Referenced by itk::HigherOrderAccurateDerivativeOperator< TPixel, VDimension, TAllocator >::GetOrderOfAccuracy(), itk::HigherOrderAccurateDerivativeOperator< TPixel, VDimension, TAllocator >::PrintSelf(), and itk::HigherOrderAccurateDerivativeOperator< TPixel, VDimension, TAllocator >::SetOrderOfAccuracy().