ITK
4.9.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 | |
typedef Superclass::PixelRealType | PixelRealType |
typedef Superclass::PixelType | PixelType |
typedef HigherOrderAccurateDerivativeOperator | Self |
typedef NeighborhoodOperator < TPixel, VDimension, TAllocator > | Superclass |
Public Types inherited from itk::NeighborhoodOperator< TPixel, VDimension, TAllocator > | |
typedef NumericTraits< TPixel > ::RealType | PixelRealType |
typedef TPixel | PixelType |
typedef NeighborhoodOperator | Self |
typedef Superclass::SizeType | SizeType |
typedef SliceIterator< TPixel, Self > | SliceIteratorType |
typedef Neighborhood< TPixel, VDimension, TAllocator > | Superclass |
Public Types inherited from itk::Neighborhood< TPixel, VDimension, TAllocator > | |
typedef TAllocator | AllocatorType |
typedef AllocatorType::const_iterator | ConstIterator |
typedef unsigned int | DimensionValueType |
typedef AllocatorType::iterator | Iterator |
typedef SizeValueType | NeighborIndexType |
typedef Offset< VDimension > | OffsetType |
typedef TPixel | PixelType |
typedef Neighborhood | Self |
typedef SizeType::SizeValueType | SizeValueType |
typedef SliceIterator< TPixel, Self > | SliceIteratorType |
Protected Types | |
typedef Superclass::CoefficientVector | CoefficientVector |
Protected Types inherited from itk::NeighborhoodOperator< TPixel, VDimension, TAllocator > | |
typedef std::vector < PixelRealType > | CoefficientVector |
Protected Member Functions | |
CoefficientVector | GenerateCoefficients () |
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) |
CoefficientVector | GenerateFirstOrderCoefficients () |
Additional Inherited Members | |
Public Attributes inherited from itk::Neighborhood< TPixel, VDimension, TAllocator > | |
typedef::itk::Size< VDimension > | RadiusType |
typedef::itk::Size< VDimension > | SizeType |
Static Public Attributes inherited from itk::Neighborhood< TPixel, VDimension, TAllocator > | |
static const 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.
typedef Superclass::PixelRealType itk::HigherOrderAccurateDerivativeOperator< TPixel, VDimension, TAllocator >::PixelRealType |
Definition at line 73 of file itkHigherOrderAccurateDerivativeOperator.h.
typedef Superclass::PixelType itk::HigherOrderAccurateDerivativeOperator< TPixel, VDimension, TAllocator >::PixelType |
Definition at line 72 of file itkHigherOrderAccurateDerivativeOperator.h.
typedef HigherOrderAccurateDerivativeOperator itk::HigherOrderAccurateDerivativeOperator< TPixel, VDimension, TAllocator >::Self |
Standard class typedefs.
Definition at line 68 of file itkHigherOrderAccurateDerivativeOperator.h.
typedef NeighborhoodOperator< TPixel, VDimension, TAllocator > itk::HigherOrderAccurateDerivativeOperator< TPixel, VDimension, TAllocator >::Superclass |
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.
|
inlineprotectedvirtual |
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().
|
protectedvirtual |
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=().
|
inlinevirtual |
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().